我有以下代码绘制点,然后绘制直方图:
# 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()上的直方图更加模糊而不是那么模糊,所以每个方格的密度更清晰。我不知道该怎么做。
答案 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)
如果我理解“阻塞”,你想要这样的东西!?
plt.hist2d(x, y, bins=40)
plt.colorbar()
plt.show()
答案 1 :(得分:1)
您只需设置imshow
使用的插值方法:
plt.imshow(H, interpolation = 'none')
此处的an example显示了不同的插值方法,the docs列出了所有实现的方法。