Python 1D和ND绘图之间的差异

Python 1D和ND绘图之间的差异,python,numpy,matplotlib,Python,Numpy,Matplotlib,我在Matplotlib上绘图已经有一段时间了,我注意到一些绘图技术,如3D绘图和其他技术,要求数据以大于1D的数组形式显示。例如,如果我有一维数组X,Y,Z,那么我将无法在三维打印中打印它们。但是,如果我将相同的阵列重塑为2D或任何ND,那么我就能够在3D中绘制它们。我的问题是,你认为为什么会发生这种情况?更重要的是,重塑后的阵列和一维阵列(就其数据而言)之间是否存在差异?让我们研究一下ax.contour。有一个: print语句显示ax.contour可以接受2D输入。 如果我们将X和Y

我在Matplotlib上绘图已经有一段时间了,我注意到一些绘图技术,如3D绘图和其他技术,要求数据以大于1D的数组形式显示。例如,如果我有一维数组X,Y,Z,那么我将无法在三维打印中打印它们。但是,如果我将相同的阵列重塑为2D或任何ND,那么我就能够在3D中绘制它们。我的问题是,你认为为什么会发生这种情况?更重要的是,重塑后的阵列和一维阵列(就其数据而言)之间是否存在差异?

让我们研究一下
ax.contour
。有一个:

print语句显示
ax.contour
可以接受2D输入。 如果我们将
X
Y
数组更改为1D数组:

X, Y, Z = axes3d.get_test_data(0.05)
X = X.reshape(-1)
Y = Y.reshape(-1)
print(X.shape, Y.shape, Z.shape)
然后我们得到

((14400,), (14400,), (120, 120))
随着形状的变化,出现
类型错误

TypeError: Length of x must be number of columns in z,
and length of y must be number of rows.

因此,似乎别无选择<代码> AX。轮廓< /代码>期望二维数组。

我理解你的观点。但是考虑我有三个一维数组,通过它我想生成三维等高线。在这种情况下,我不能这样做。Matplotlib要求我给出2D数组(至少在z轴上)。我的观点是,.[1,2,3,4,5,6]和[1,2,3][4,5,6]在数据分析方面有什么区别?他们会给出确切的情节吗?
TypeError: Length of x must be number of columns in z,
and length of y must be number of rows.