我有一个数据点,排列成如下所示的命名元组:
[Data(people=100, val=0.01, val2=0.606454, val3=0.029986),
Data(people=100, val=0.1, val2=3.656714, val3=0.300396),
Data(people=100, val=1.0, val2=7.076927, val3=3.000013),
Data(people=100, val=10.0, val2=10.407313, val3=29.953985),
Data(people=100, val=100.0, val2=13.729915, val3=293.380137),
...]
我想用matplotlib制作表面3D图,我开始如下:
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
X, Y = np.meshgrid(xs, ys)
Z = zs
ax.contour3D(X, Y, Z, 50, cmap='binary')
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')
但是,returns an error
应该是Z
(2D array
)的代码Input z must be a 2D array.
。互联网上的所有示例都将Z作为X,Y的函数进行计算。但是,我没有函数,我已经预先计算了给定的点。我应该如何定义Z以便绘制它?如果我尝试使用其他功能,例如plot_wireframe
,plot_surface
等,则会出现相同的问题。