接受自己的普通,然后全力以赴的出众,告诉自己要努力,但不要着急....
01
前言
在自己的论文实验中,遇到了一个气象站实际观测数据与预测数据之间的对比,因此考虑绘制一个散点图来进行展示,但是我的实测数据与预测数据统计下来有100多万个样本点(时间分辨率比较高、统计时间较长),起初绘制散点图是这样的。。。
#!/usr/bin/env python# -*- coding: utf-8 -*-# Name : simple_scatter.py# Author : zengsk in NanJing# Created: 2019/12/14 17:16"""Details: 不带颜色渲染的散点图绘制 (包含多个子图)"""import numpy as npimport matplotlib.pyplot as pltdef draw_scatter(x, y, marker_size=1, savefig_name=""): # 创建画图窗口 fig = plt.figure(1, figsize=(8, 8)) # 将画图窗口分成2x2, 选择第一块区域作子图 subplot1 = fig.add_subplot(2, 2, 1) # 画散点图 subplot1.scatter(x, y, s=marker_size, c='k', marker='.') # 画参考线 subplot1.plot((0, 300), (0, 300), linestyle="--", linewidth=0.8, color="b") # 调整坐标轴范围 plt.xlim((0, 300)) plt.ylim((0, 300)) # 设置坐标轴刻度 xticks = np.arange(0, 301, 50) yticks = np.arange(0, 301, 50) plt.xticks(xticks) plt.yticks(yticks) # 设置标题 subplot1.set_title('Scatter Plot') # 设置坐标轴名称 subplot1.set_xlabel('Observation') subplot1.set_ylabel('Estimate') # 添加网格线 plt.grid(linestyle='--', color='grey') # 全局修改字体 plt.rc('font', family='Times New Roman') # save figure fig.tight_layout() if "" != savefig_name.strip(): plt.savefig(savefig_name, dpi=600) plt.show()# 主模块if __name__ == "__main__": # 加载数据 url = r"E:\Scripts\Test\scatter\data\estimate3.csv" data = np.loadtxt(url, delimiter=',', skiprows=1) x = data[:, 1] y = data[:, 2] draw_scatter(x, y, savefig_name="E:\Scripts\Test\scatter\data\scatter.jpg")
当然, 这个结果并不是我真正想要的,Pass, 太丑了!
样本点太多,一片黑色, 无法看出散点的聚集程度,如果能考虑用一个颜色带(colorbar),对图中的散点按照密集程度进行着色,那就完美了呗!当然,这个想法来自于我的师兄,我只是一个实现者....