在做精度对比的时候,密度散点图作用很大,特别的数据量大、精度高、相关系数高等情况出现的时候,很容易产生密集散点在聚集的热点,这个热点内的点数无法通过肉眼直观的了解,需要一个辅助的指标来了解聚集程度,通常用colocbar的图例来标识密集程度。在python的matplotlib.pyplot中,密度散点图的绘制要依靠栅格点(hist2d)而不是(scatter),当然,在清楚绘制密度的时候你也可以使用(scatter)绘制,能得到更好的显示效果。
另外,在精度图绘制的时候,通常会使用(sklearn import linear_model)绘制回归线,以及用文本标记样本数量、相关系数、RMSE等其他指标。
以下用正太分布随机生成一个例子:
代码语言:javascript复制import numpy as np
from matplotlib.colors import LogNorm
import matplotlib.pyplot as plt
from pylab import *
a=np.random.lognormal(mean=0.1,sigma=0.2,size=5100)
b=np.random.lognormal(mean=0.2,sigma=0.4,size=5100)
c=np.column_stack([a,b])
p1=np.corrcoef(c[:,0],c[:,1])#
hist2d(c[:,0],c[:,1], bins=80, norm=LogNorm())
cb=plt.colorbar()
cb.set_ticks([1,2,5,10,20,50,80],update_ticks=True)#设定图例的刻度
cb.set_ticklabels([1,2,5,10,20,50,80],update_ticks=True)#设定图例上的标签
plt.show()
回归线、文本就不加了。。。就是这么懒