我在 google colab 中生成 3d 散点图,但问题是生成的无花果是静态的并且不可旋转。我也试过命令
%matplotlib 笔记本
启用 3D 散射旋转,因为它显然在 jupyter notebook 环境中工作,但似乎这在 google colab 环境中不起作用。
你可以在这里找到我的代码
我在 google colab 中生成 3d 散点图,但问题是生成的无花果是静态的并且不可旋转。我也试过命令
%matplotlib 笔记本
启用 3D 散射旋转,因为它显然在 jupyter notebook 环境中工作,但似乎这在 google colab 环境中不起作用。
你可以在这里找到我的代码
尝试 plotly (python 图形库) 3D scatter plot。
截至目前,您无法在 Colab 中旋转 MatPlotlib 生成的 3D图。Plotly 可能是一个替代方案。
但是,您可以使用该view_init
方法更改视图。它有两个参数(elev
用于仰角和azim
方位角)来设置旋转轴。你会得到不同的观点。
默认情况下,view_init
设置为azim=-60, elev=30
。角度以度数指定。在您的代码中,在使用 scatter 方法之前将elev
和的值更改为其他值。azim
使用示例ax.view_init(elev=30, azim=-120)
如下所示:
import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import axes3d
fig = plt.figure()
ax = fig.add_subplot(111, projection = '3d')
x1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
y1 = np.random.randint(10, size=10)
z1 = np.random.randint(10, size=10)
x2 = [-1, -2, -3, -4, -5, -6, -7, -8, -9, -10]
y2 = np.random.randint(-10, 0, size=10)
z2 = np.random.randint(10, size=10)
ax.view_init(elev=30, azim=-120)
ax.scatter(x1, y1, z1, c='b', marker='o', label='blue')
ax.scatter(x2, y2, z2, c='g', marker='D', label='green')
ax.set_xlabel('x axis')
ax.set_ylabel('y axis')
ax.set_zlabel('z axis')
plt.title("3D Scatter Plot Example")
plt.legend()
plt.tight_layout()
plt.show()
这将产生以下图:
注意:
ax.view_init(elev=0, azim=60)
: 零海拔使情节就像我们在水平看一样。ax.view_init(elev=-30, azim=60)
:负高程垂直反转。该图更好地解释了方位角和仰角的含义。