Python pyplot如何在同一轴上绘制三维散射和抖动?

Python pyplot如何在同一轴上绘制三维散射和抖动?,python,numpy,matplotlib,Python,Numpy,Matplotlib,我想打印点的散点图,并添加它们的主要方向 所以我有一个向量数组(在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)

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

所以我有一个向量数组(在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

mplot3d
库是一个简单的绘图,它模拟三维绘图的形状,而不是实际绘制它们。因此,在同一轴上不能有两个清晰的绘图。通过绘制两个稍微向一侧移动的曲面,可以清楚地看到这一点。它先画其中一个,然后再画另一个,所以深度会被弄乱。 这么说来,这似乎不是你的问题。你还没有提供任何关于你的数据的信息,但是对于我做的一个虚拟案例,这个情节似乎是合理的: 从mpl_toolkits.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])
试试这段代码,看看是否得到相同的结果?
可能是您的箭图比散点图的范围小得多,因此您在视觉上忽略了它。

mplot3d库是一个简单的绘图,它模拟3d绘图的形状,而不是实际绘制它们。因此,在同一轴上不能有两个清晰的绘图。通过绘制两个稍微向一侧移动的曲面,可以清楚地看到这一点。它先画其中一个,然后再画另一个,所以深度会被弄乱。 这么说来,这似乎不是你的问题。你还没有提供任何关于你的数据的信息,但是对于我做的一个虚拟案例,这个情节似乎是合理的: 从mpl_toolkits.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])
试试这段代码,看看是否得到相同的结果? 可能是您的箭图比散点图的范围小得多,所以您在视觉上忽略了它。

看看这里,它正是您想要的。

看看这里,它正是您想要的