您可以使用griddata 将您的数据插值到所有100000 点到一个统一的网格(比如100 x 100),然后用颜色的对数缩放来绘制所有内容,
x = data[:,0]
y = data[:,1]
z = data[:,2]
# define grid.
xi = np.linspace(np.min(x),np.max(x),100)
yi = np.linspace(np.min(y),np.max(y),100)
# grid the data.
zi = griddata(x,y,z,xi,yi,interp='linear')
#pcolormesh of interpolated uniform grid with log colormap
plt.pcolormesh(xi,yi,zi,norm=matplotlib.colors.LogNorm())
plt.colormap()
plt.show()
我没有对此进行测试,但基本想法应该是正确的。这样做的好处是您不需要知道原始(大型)数据集,并且可以简单地使用网格数据 xi、yi 和 zi。
另一种方法是为散点图着色,
plt.scatter(x, y, c=z,edgecolors='none', norm=matplotlib.colors.LogNorm())
并关闭点的外边缘,使它们构成连续图片。