我是 python 的新手。
我有一个 numpy 矩阵,尺寸为 42x42,值在 0-996 范围内。我想使用这些数据创建一个 2D 直方图。我一直在看教程,但它们似乎都展示了如何从随机数据而不是 numpy 矩阵创建二维直方图。
到目前为止,我已经导入了:
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import colors
我不确定这些导入是否正确,我只是想从我看到的教程中尽可能地学习。
我有一个 numpy 矩阵 M
,其中包含所有值(如上所述)。最后,我希望它看起来像这样:
显然,我的数据会有所不同,所以我的情节应该看起来不同。谁能帮帮我?
编辑:为了我的目的,下面Hooked的例子,使用matshow,正是我要找的。p>
最佳答案
如果您有来自计数的原始数据,您可以使用 plt.hexbin
为您创建绘图(恕我直言,这比方格更好):改编自 hexbin
的示例:
import numpy as np
import matplotlib.pyplot as plt
n = 100000
x = np.random.standard_normal(n)
y = 2.0 + 3.0 * x + 4.0 * np.random.standard_normal(n)
plt.hexbin(x,y)
plt.show()
如果您提到的矩阵中已经有 Z 值,只需使用 plt.imshow
或 plt.matshow
:
XB = np.linspace(-1,1,20)
YB = np.linspace(-1,1,20)
X,Y = np.meshgrid(XB,YB)
Z = np.exp(-(X**2+Y**2))
plt.imshow(Z,interpolation='none')
关于Python:从 numpy 矩阵创建二维直方图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27156381/