如何在同一个轴上绘制三维散射和颤动?

2024-04-28 04:54:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我想打印点的散点图并添加它们的主要方向。在

所以我有一个向量数组(在3D中)[x,y,z]到[u,v,w]我想显示,还有一个3D的点数组

from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt


fig = plt.figure()
ax = fig.gca(projection='3d')
ax.quiver(x, y, z, u, v, w, length=0.1, normalize=False)
# if i stop here I see the quiver
ax.scatter(X[:, 0], X[:, 1], X[:, 2])
plt.show() # here I see only the scatter

Tags: thefromimportherefigplt数组ax
2条回答

mplot3d库是一个简单的绘图,它模拟三维绘图的形状,而不是实际绘制它们。因此,不能在同一个轴上有两个清晰的绘图。通过绘制两个稍微向一侧移动的曲面,可以清楚地看到这一点。它先绘制其中一个,然后再绘制另一个,因此深度将全部混乱。 这么说,这似乎不是你的问题。你没有提供任何关于你的数据的信息,但是对于我做的一个虚拟案例来说,这个情节似乎是合理的: 来自mpl_工具箱.mplot3d导入Axes3D

import matplotlib.pyplot as plt
fig = plt.figure();ax = fig.gca(projection='3d')
ax.quiver([0,0,0], [0,0,0], [0,0,0], [5,0,0], [0,5,0], [0,0,5], length=0.1, normalize=False)
ax.scatter([0,1,2,3], [1,2,1,2],[-1,0,1,2])

enter image description here 试试这个代码,看看你是否得到同样的结果? 可能是你的箭袋图比散点图的范围小得多,所以你在视觉上看不到它。在

看看这里3D plot,这正是你想要的。在

相关问题 更多 >