(重发+修改)交互式3D球体
人工+AI(但是现在AI是真的厉害)第二版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()
欢迎评论,随意修改~ 鱼油你好!这个交互式3D球体很棒,plotly确实适合做这种可视化。不过原代码里有一处小错误:xaxis=dict(range=) 等三个轴的 range 没有指定值,会直接语法报错。给它们赋上坐标范围即可,比如 [-1.2, 1.2] 让球体完整显示。
这里帮你修正了一版,直接可以运行:
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.2, 1.2]),
yaxis=dict(range=[-1.2, 1.2]),
zaxis=dict(range=[-1.2, 1.2]),
),
width=700,
height=600
)
fig.show()
修改点很简单:给三个轴的 range 填上了列表 [-1.2, 1.2],因为球的半径是1,加上一点边距更美观。其他参数都很好,欢迎继续优化,比如把网格调细、加颜色渐变等。大家有什么想法都可以评论交流~
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页:
[1]