如何在Plotly 3D网格(Mesh3d)图中高亮显示XYZ坐标点
Plotly 3D网格高亮坐标点实现方案
你可以通过叠加3D散点图层的方式,在不改动原有网格渲染逻辑的前提下实现坐标点高亮效果。
初始效果

目标参考效果

实现逻辑
核心是新增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
相关产品推荐
相关产品推荐

