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

如何在Plotly 3D网格(Mesh3d)图中高亮显示XYZ坐标点

Plotly 3D网格高亮坐标点实现方案

你可以通过叠加3D散点图层的方式,在不改动原有网格渲染逻辑的前提下实现坐标点高亮效果。

初始效果

初始3D网格效果

目标参考效果

XYZ点高亮效果参考

实现逻辑

核心是新增go.Scatter3d trace单独渲染需要高亮的顶点和对应标签:

  • 点位选取:直接复用原有Mesh3d中定义的4个顶点坐标,分别对应原点、X/Y/Z三个轴的端点
  • 样式配置:给高亮点位设置更大的尺寸、和浅蓝网格反差极强的正红色,同时把原有网格的透明度适当调低,避免点位被网格面遮挡
  • 标签配置:给每个点位绑定对应的文本标识,设置标签显示在点位上方,避免和图形元素重叠

可直接运行的完整代码

import plotly.graph_objects as go

fig = go.Figure(data=[
    go.Mesh3d(
        x=[0, 1, 0, 0],
        y=[0, 0, 1, 0],
        z=[0, 0, 0, 1],
        i=[0, 0, 0, 1],
        j=[1, 2, 3, 2],
        k=[2, 3, 1, 3],
        opacity=0.7,
        color='#87CEEB'
    )
])

# 添加高亮点位和标签
fig.add_trace(go.Scatter3d(
    x=[0, 1, 0, 0],
    y=[0, 0, 1, 0],
    z=[0, 0, 0, 1],
    mode='markers+text',
    marker=dict(
        size=9,
        color='#FF2D2D',
        opacity=1
    ),
    text=['O', 'X', 'Y', 'Z'],
    textposition='top center',
    textfont=dict(size=14)
))

fig.show()

可调参数说明

  • 调整marker.size可以修改高亮圆点的大小
  • 修改marker.color可以更换高亮点位的颜色
  • 调整网格的opacity参数可以修改网格面的透明度,数值越小网格越通透
  • 修改textposition可以调整标签相对于点位的显示位置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 02:01:24