python 来自 pandas 数据框的网格值

python meshgrid values from pandas dataframe

已解决

我有一个像这样的 pandas DataFrame

       X    Y       Z      Vx           Vy              Vz
0   -17.5   10.0   2.5     0.037132     -4.021866e-02   -0.002117
1   -17.5   12.5   0.0     0.021691     -3.838874e-02   -0.000651
3   -17.5   0.0    12.5    0.063864     7.724853e-07    -0.023265
7   -17.5   2.5    2.5     0.072648     -1.244435e-02   -0.002749
16  -17.5   5.0    0.0     0.064299     -2.709658e-02   -0.000972

我想绘制一个 3D 箭袋图,其中 X、Y、Z 是笛卡尔坐标,Vx、Vy、Vz 是我的矢量场的分量。 我以这种方式为 x、y、z 制作了网格

x,y,z = np.meshgrid(dataPM[dataPM.columns[0]],dataPM[dataPM.columns[1]],dataPM[dataPM.columns[2]])

但我正在努力制作一个函数来为 Vx、Vy、Vz 创建相应的网格。

有什么想法吗?

非常感谢您的帮助。

解决方案

事实证明,如果你已经有了一个包含所有 x、y、z、Vx、Vy、Vz 值的 pandas DataFrame,你可以将它们传递给箭袋,这是我的错,但和往常一样尝试越多,学到的越多。

所以最后的代码是:

from mpl_toolkits.mplot3d import axes3d
fig = plt.figure(figsize=(16,9))
ax = fig.gca(projection='3d')
ax.quiver(dataPM[dataPM.columns[0]], dataPM[dataPM.columns[1]], dataPM[dataPM.columns[2]],dataPM[dataPM.columns[3]],dataPM[dataPM.columns[4]],dataPM[dataPM.columns[5]])
plt.show()

然后如果你想让它变得更好,你可以玩颜色等等。

感谢大家