python - pyplot 如何在同一轴上绘制 3D 散点图和颤动图?
问题描述
我想打印点的散点图并添加它们的主要方向。
所以我有一个要显示的向量数组(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
库是一个简单的绘图,它模拟 3d 绘图的形状,而不是实际绘制它们。因此,您不能在同一轴上有两个清晰的图。您可以通过绘制两个稍微向一侧移动的表面来清楚地看到这一点。它绘制其中一个,然后绘制另一个,因此深度将全部混乱。说起来,这似乎不是你的问题。您没有提供有关您的数据的任何信息,但对于我制作的虚拟案例,情节似乎是合理的: from mpl_toolkits.mplot3d import 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])
推荐阅读
- python - 如何使用pickle(python)加载文件夹中的每个文件
- javascript - 防止2个线程同时读/写同一个文件?
- javascript - 将div元素转换为ul?
- php - PHP AJAX相互依赖的下拉列表不起作用
- c# - 如何使用 C# 将 excel 动态列名称插入 sql
- android - 更改默认拨号器的请求未在某些设备上显示系统对话框
- r - 在 R 的 data.table 中,如何在数据表中创建一个新列,其值匹配并对应于列元素和另一个表?
- python - Python如何在循环中解析json usng标签
- steam - 如何检查 Steam 帐户是否是 Steam 上现有已开发游戏的开发者帐户?
- python - 使用 pyqt5 和 malplotlib 进行图形滚动