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

如何在Plotly 3D曲面图中通过给定x、y坐标标记指定区域或边框

Plotly 3D高程曲面指定区域标记实现方法

可以仅通过提供若干x、y坐标完成区域标记需求,以下是基于你原有代码的修改方案:

实现逻辑

  • 你只需准备目标区域的有序边界x、y坐标列表(闭合区域需保证最后一个坐标点和第一个点坐标完全一致,形成闭环)
  • 我们通过已有的高程网格数据,计算每个边界点对应的实际z值,再用3D散点线将边界绘制在高程曲面之上即可,也可选择填充高亮整个区域

完整可运行代码

import plotly.graph_objects as go
import pandas as pd
import numpy as np
from scipy.interpolate import interp2d # 用于插值计算边界点的z值

# 读取原始高程数据(你的原有逻辑不变)
contour_data = pd.read_csv(r"C:\Elevation.xyz", delimiter=' ', names=["x","y","z"])
print(contour_data.head())

# 生成高程网格(你的原有逻辑不变)
Z = contour_data.pivot_table(index='x', columns='y', values='z').T.values
X_unique = np.sort(contour_data.x.unique())
Y_unique = np.sort(contour_data.y.unique())
X, Y = np.meshgrid(X_unique, Y_unique)

# ------------------- 新增:区域标记部分 -------------------
# 1. 替换为你自己的目标区域边界x、y坐标列表,这里是示例坐标
area_boundary_x = [100, 200, 200, 100, 100] # 示例正方形区域x坐标,闭合所以最后回到起始点
area_boundary_y = [300, 300, 400, 400, 300] # 示例正方形区域y坐标

# 2. 插值计算每个边界点对应的高程z值
z_interp = interp2d(X_unique, Y_unique, Z, kind='linear')
area_boundary_z = [float(z_interp(x, y)) for x, y in zip(area_boundary_x, area_boundary_y)]

# 3. 生成3D边界轨迹
boundary_trace = go.Scatter3d(
    x=area_boundary_x,
    y=area_boundary_y,
    z=area_boundary_z,
    mode='lines',
    line=dict(
        color='red', # 边框颜色可自定义
        width=4 # 边框粗细可自定义
    ),
    name='目标区域'
)

# 如果你需要填充高亮整个区域,可额外添加Mesh3d轨迹,不需要的话删掉这段即可
fill_trace = go.Mesh3d(
    x=area_boundary_x,
    y=area_boundary_y,
    z=area_boundary_z,
    color='yellow',
    opacity=0.5, # 半透明可以看到下方的地形
    name='高亮区域'
)
# ------------------- 新增部分结束 -------------------

# 绘制图像,把新增的轨迹加进data列表里
fig = go.Figure(data=[
    go.Surface(z=Z,x=X_unique,y=Y_unique, name='高程地形'),
    boundary_trace,
    # fill_trace # 需要填充的时候取消注释即可
])
fig.update_layout(title='Elevation', autosize=True, margin=dict(l=65, r=50, b=65, t=90))
fig.update_layout(scene=dict(aspectratio=dict(x=2, y=2, z=0.4)))
fig.show(renderer="browser")

效果示例

原有高程图效果如下:
3D elevation plot
添加标记后,你可以得到带自定义样式边框的目标区域效果,也可根据需要调整颜色、透明度等参数。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 14:15:03