如何在Google Colaboratory中旋转3D散点图?

21

我在Google Colab中生成了一个3D散点图,但问题是生成的图是静态的,不能旋转。

我尝试使用命令

%matplotlib notebook

以启用3D散点旋转,因为它显然在Jupyter Notebook环境中起作用,但似乎在Google Colab环境中不起作用。

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


4
的确。遗憾的是,Google Colab 不支持 3D 旋转功能。 - Ekaba Bisong
大家好。有人知道现在Google Colab是否可用吗? - Saqib Ali
大家好。有人知道现在在Google Colab上是否有这个功能吗? - undefined
3个回答

5

1
找到了Plotly的官方示例(虽然不是专门针对3D散点图):https://colab.research.google.com/notebooks/charts.ipynb#scrollTo=MYqcrcKLO4xe - jumpjack
我直接访问了提供的链接,实现起来非常简单,而且3D图形可以旋转! - Thom Ives

2
目前,您不能在Colab中旋转由Matplotlib生成的3D图。Plotly是一个更好的替代品。
但是,您可以使用view_init方法来改变视角。它有两个参数(elev表示仰角,azim表示方位角),以旋转坐标轴。您将得到一个不同的视点。 默认情况下view_init设置为azim=-60,elev=30。角度以度为单位指定。在您的代码中,在使用散点方法之前更改elevazim的值。以下是一个示例,使用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): 负仰角会上下翻转。

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


0
要在Google Colaboratory中旋转3D散点图,您可以按照以下步骤使用提供的示例进行操作:
点击以下链接打开示例笔记本:

https://colab.research.google.com/drive/1j4PF-wWU0bQa1BY9DSkrtkraJteRv82n#scrollTo=AFDAcAp9tKiy&line=107&uniqifier=1

一旦您打开笔记本,您可以向下滚动到创建3D散点图的部分。在提供的示例中,似乎在第107行附近生成了3D散点图。
要旋转图表,请在3D散点图上单击并拖动鼠标光标。这样做应该可以让您自由地以任何方向旋转图表。
尝试不同的旋转,直到您获得所需的3D散点图视图为止。
就是这样!您可以使用鼠标光标在Google Colaboratory中交互地旋转3D散点图,就像提供的示例笔记本中演示的那样。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接