You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Plotly的3D曲面图中添加y=x平面?

给Plotly 3D曲面图添加y=x平面的实现方法

要在现有3D曲面图中添加y=x平面,你可以通过创建符合y=x关系的平面数据集,再用go.Surface将其加入图表,具体修改如下:

修改后的完整代码

import numpy as np
import plotly.graph_objects as go

# 定义定义域
x = np.linspace(-5, 5, 100)
y = np.linspace(-5, 5, 100)
X, Y = np.meshgrid(x, y)

# 定义函数,避免除以零
Z = np.where(X**2 + Y**2 != 0, (X * Y) / (X**2 + Y**2), 0)

# 创建交互式图表
fig = go.Figure(data=[
    go.Surface(z=Z, x=X, y=Y, colorscale='Viridis', name='f(x,y)'),
    # 添加y=x平面
    go.Surface(
        x=x,
        y=x,
        z=np.linspace(-0.5, 0.5, 100).reshape(-1,1),  # 覆盖原函数的z值范围
        colorscale=['#FF0000', '#FF0000'],  # 用单一红色标识平面
        opacity=0.3,  # 设置透明度避免遮挡原曲面
        name='y=x平面'
    )
])

# 添加标题和轴配置
fig.update_layout(
    title='Interactive graph of f(x, y) = xy / (x^2 + y^2)',
    scene=dict(
        xaxis_title='X',
        yaxis_title='Y',
        zaxis_title='f(X, Y)'
    ),
)

# 显示图表
fig.show()

关键实现说明

  • 平面数据集构建:y=x平面中x和y取值完全相同,z的范围需要覆盖原函数f(x,y)的取值区间(原函数z范围是[-0.5, 0.5]),用np.linspace生成对应z值并调整维度匹配x/y。
  • 视觉区分设置:给平面设置单一颜色(比如红色)和较低透明度(opacity=0.3),既能清晰看到平面位置,又不会遮挡原曲面细节。
  • 添加到图表:将平面的go.Surface对象和原曲面对象一起放入go.Figure的data列表即可。

内容的提问来源于stack exchange,提问作者Mark

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 14:17:05