我有一个2D Numpy矩阵,我想使用matplotlib将其绘制为3D曲面图.
对于X0和Xend之间的每个X以及Y0和Yend之间的Y,我想用等于矩阵[X,Y]的Z值绘制一个点.
我想我可以手动展开矩阵并生成一个由X值组成的数组、一个由Y值组成的数组和一个由Z值组成的一维数组,但这样做似乎既笨拙又低效.
我试过了
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
#plt.matshow(bias_array)
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.scatter(range(X0,Xend), range(Y0,Yend), bias_array[X0:Xend,Y0:Yend], marker='o')
但这产生了
形状不匹配:对象不能广播到单个形状.形状为(5,)的参数0和形状为(25,)的参数2之间不匹配.
(请注意,在本例中,X和Y范围均为5)
因为matplotlib不知道进入矩阵并 for each 数据点挑选X、Y.