带有离散色图的Python二维直方图

时间:2014-06-27 19:43:21

标签: python matplotlib histogram

我有以下代码绘制点,然后绘制直方图:

# Produce a number of points in x-y from 1 distribution. 
mean = [3,4]
cov = [[3,1],[1,3]] 
x,y = np.random.multivariate_normal(mean,cov,1000).T
plt.plot(x,y,'x'); plt.axis('equal'); plt.show()
Z = np.array([x,y])

# Produce 2D histogram projection
H,xedges,yedges = np.histogram2d(x,y,10,normed=False)
X,Y = np.meshgrid(xedges,yedges)
plt.imshow(H)
plt.grid(True)

我只是希望imshow()上的直方图更加模糊而不是那么模糊,所以每个方格的密度更清晰。我不知道该怎么做。

2 个答案:

答案 0 :(得分:2)

所以,你的初始代码看起来像这样

从matplotlib导入pyplot作为plt 导入numpy为np

# Produce a number of points in x-y from 1 distribution. 
mean = [3,4]
cov = [[3,1],[1,3]] 
x,y = np.random.multivariate_normal(mean,cov,1000).T
plt.plot(x,y,'x'); plt.axis('equal'); plt.show()
Z = np.array([x,y])

# Produce 2D histogram projection
H,xedges,yedges = np.histogram2d(x,y,10,normed=False)
X,Y = np.meshgrid(xedges,yedges)
plt.imshow(H)
plt.grid(True)

enter image description here

enter image description here

如果我理解“阻塞”,你想要这样的东西!?

plt.hist2d(x, y, bins=40)
plt.colorbar()
plt.show()

enter image description here

答案 1 :(得分:1)

您只需设置imshow使用的插值方法:

plt.imshow(H, interpolation = 'none')

此处的an example显示了不同的插值方法,the docs列出了所有实现的方法。