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

Plotly中使用mirror='allticks'时如何显示立方区域全部棱边?

解决Plotly等值面图中显示全部12条立方棱边的问题

使用mirror='allticks'参数仅能显示轴刻度对应的6条棱边,因为该参数仅会镜像绘制坐标轴本身的线条,而非完整的立方体边框。要显示全部12条棱边,需要手动在场景中添加3D线条形状来补全剩余的棱边。

修改后的代码示例

import plotly.graph_objects as go

fig = go.Figure(data=go.Isosurface(
               x=[0, 0, 0, 0, 1, 1, 1, 1],
               y=[1, 0, 1, 0, 1, 0, 1, 0],
               z=[1, 1, 0, 0, 1, 1, 0, 0],
               value=[1, 0, 1, 0, 2, -2, 3, 6],
               surface=dict(count=50, fill=1.0),
               isomin=2.0,
               isomax=9.0))

config = dict(showline=True,
             linecolor='black',
             showbackground=False,
             range=[-0.0, 1.0],
             tickcolor='black',
             mirror='allticks',
             ticks='outside')

# 定义立方体的12条棱边
cube_edges = [
    # 背面(z=0)
    dict(type='line', x0=0, y0=0, z0=0, x1=1, y1=0, z1=0, line=dict(color='black', width=2)),
    dict(type='line', x0=1, y0=0, z0=0, x1=1, y1=1, z1=0, line=dict(color='black', width=2)),
    dict(type='line', x0=1, y0=1, z0=0, x1=0, y1=1, z1=0, line=dict(color='black', width=2)),
    dict(type='line', x0=0, y0=1, z0=0, x1=0, y1=0, z1=0, line=dict(color='black', width=2)),
    # 正面(z=1)
    dict(type='line', x0=0, y0=0, z0=1, x1=1, y1=0, z1=1, line=dict(color='black', width=2)),
    dict(type='line', x0=1, y0=0, z0=1, x1=1, y1=1, z1=1, line=dict(color='black', width=2)),
    dict(type='line', x0=1, y0=1, z0=1, x1=0, y1=1, z1=1, line=dict(color='black', width=2)),
    dict(type='line', x0=0, y0=1, z0=1, x1=0, y1=0, z1=1, line=dict(color='black', width=2)),
    # 垂直棱边(连接正反面)
    dict(type='line', x0=0, y0=0, z0=0, x1=0, y1=0, z1=1, line=dict(color='black', width=2)),
    dict(type='line', x0=1, y0=0, z0=0, x1=1, y1=0, z1=1, line=dict(color='black', width=2)),
    dict(type='line', x0=1, y0=1, z0=0, x1=1, y1=1, z1=1, line=dict(color='black', width=2)),
    dict(type='line', x0=0, y0=1, z0=0, x1=0, y1=1, z1=1, line=dict(color='black', width=2)),
]

fig.update_layout(scene=dict(
                 xaxis=config,
                 yaxis=config,
                 zaxis=config,
                 xaxis_title_text='x',
                 yaxis_title_text='y',
                 zaxis_title_text='z',
                 shapes=cube_edges),  # 添加棱边形状
                 width=900 )

fig.show()

说明

  • 通过scene.shapes参数添加了立方体的全部12条棱边,每条棱边都是独立的3D线条,颜色和宽度与坐标轴线条保持一致。
  • 保留原有的mirror='allticks'参数不影响新增的棱边显示,两者可以共存。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 10:55:15