15

我在 google colab 中生成 3d 散点图,但问题是生成的无花果是静态的并且不可旋转。我也试过命令

%matplotlib 笔记本

启用 3D 散射旋转,因为它显然在 jupyter notebook 环境中工作,但似乎这在 google colab 环境中不起作用。

你可以在这里找到我的代码

4

2 回答 2

4

尝试 plotly (python 图形库) 3D scatter plot

于 2019-10-31T21:21:42.170 回答
0

截至目前,您无法在 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()

这将产生以下图:

带有高度和方位角的修改图

注意

  1. ax.view_init(elev=0, azim=60): 零海拔使情节就像我们在水平看一样。
  2. ax.view_init(elev=-30, azim=60):负高程垂直反转。

该图更好地解释了方位角和仰角的含义。 方位角和仰角

于 2022-02-07T08:05:43.067 回答