【发布时间】:2018-05-20 13:11:46
【问题描述】:
我有两个 numpy 数组,一个形状 (239,2) 包含我的数据点,另一个形状 (239,) 包含这些数据点的二元高斯密度值。
如何使用 Matplotlib 在数据点的散点图上为我的密度函数创建等高线图?
目前,当我尝试在 matplotlib 中使用 contour 函数时,我得到了一个 TypeError: Input z must be a 2D array。如果我有每个数据点的 X 轴、Y 轴和概率密度值,为什么 z 必须是 2D 的?我需要以某种方式进行插值吗?
fig, ax = plt.subplots()
ax.scatter(X[:,0], X[:,1], c='green')
ax.scatter(X[:,0], X[:,1], c='orange')
ax.contour(z, X[:,0], X[:,1]) <-- TypeError happens here
plt.show()
X 的形状为 (239, 2),z 的形状为 (239,)
【问题讨论】:
-
您应该查看文档。它突出了数据形状的具体要求:matplotlib.org/api/_as_gen/matplotlib.pyplot.contour.html
-
它提到
z需要与x和y具有相同的形状,因此您可以尝试将z重塑为(239,1)的形状,如下所述:@987654322 @
标签: python matplotlib