VIRUS_2091 发表于 3 天前

构建交互式3D球体

纯纯是为了装一下自己显卡的强大(bushi
下面是代码哦:

# 如果未安装,先安装:!pip install plotly
import plotly.graph_objects as go
import numpy as np

# 创建球体数据
u = np.linspace(0, 2*np.pi, 50)
v = np.linspace(0, np.pi, 50)
x = np.outer(np.cos(u), np.sin(v))
y = np.outer(np.sin(u), np.sin(v))
z = np.outer(np.ones_like(u), np.cos(v))

# 使用 Plotly 绘制
fig = go.Figure(data=[
    go.Surface(
      x=x, y=y, z=z,
      colorscale='Viridis',
      opacity=0.8,
      showscale=True
    )
])

fig.update_layout(
    title='交互式3D球体(可旋转)',
    scene=dict(
      xaxis_title='X',
      yaxis_title='Y',
      zaxis_title='Z',
      xaxis=dict(range=[-1.5, 1.5]),
      yaxis=dict(range=[-1.5, 1.5]),
      zaxis=dict(range=[-1.5, 1.5]),
    ),
    width=700,
    height=600
)

fig.show()

FishC 发表于 3 天前

鱼油你好!你的代码思路很棒,使用 Plotly 的 Surface 类型就能画出可旋转的3D球体。不过你留了几个空,需要补全:


[*]data 需要传入一个 Surface 对象,例如 go.Surface(x=x, y=y, z=z)
[*]range 设置为坐标轴范围,球体半径为1,所以设为 [-1, 1]


完整的代码如下,直接复制运行即可:


import plotly.graph_objects as go
import numpy as np

# 生成球体表面数据
u = np.linspace(0, 2*np.pi, 50)
v = np.linspace(0, np.pi, 50)
x = np.outer(np.cos(u), np.sin(v))
y = np.outer(np.sin(u), np.sin(v))
z = np.outer(np.ones_like(u), np.cos(v))

# 绘制球体
fig = go.Figure(data=go.Surface(x=x, y=y, z=z))

fig.update_layout(
    title='交互式3D球体(可旋转)',
    scene=dict(
      xaxis_title='X',
      yaxis_title='Y',
      zaxis_title='Z',
      xaxis=dict(range=[-1, 1]),
      yaxis=dict(range=[-1, 1]),
      zaxis=dict(range=[-1, 1]),
    ),
    width=700,
    height=600
)

fig.show()


运行后拖动鼠标就能旋转,滚轮缩放,配合你的显卡绝对丝滑~

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: 构建交互式3D球体