带轮廓的曲面图 - 仅在 3D 图中绘制投影轮廓/轨迹

时间:2021-04-18 23:31:13

标签: python plotly trace plotly-dash surface

我有一个表面图的网格数据,其轮廓显示了测深数据。我想知道他们是否是一种关闭曲面图和 3D 跟踪线的方法,因此它只显示地面上的投影跟踪轮廓?

我的目标是在等高线上叠加单独的 3D 散点图数据,因此 2D 等高线图不适用于此目的。

我发现您可以通过将不透明度设置为 0 来移除曲面图。不过这不太正确,因为我无法弄清楚如何仅在地平面上显示投影轨迹线。< /p>

Example with surface

Trace only with surface opacity set to zero

import plotly.graph_objects as go
import dash
import dash_core_components as dcc
import dash_html_components as html
import pandas as pd

app = dash.Dash()

# Read data from a csv
z_data = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/api_docs/mt_bruno_elevation.csv')

surf_fig = go.Figure(data=[go.Surface(
    z=z_data.values,
    opacity=0
    )
])
surf_fig.update_layout(title='Mt Bruno Elevation', autosize=False,
    scene_camera_eye=dict(x=1.87, y=0.88, z=-0.64),
    width=500, height=500,
    margin=dict(l=65, r=50, b=65, t=90),
    )

surf_fig.update_scenes(camera_projection_type='orthographic')

surf_fig.update_traces(contours_z=dict(show=True, usecolormap=True,
    highlightcolor="#39CCCC", project_z=True))

depth_surface = html.Div([dcc.Graph(figure=surf_fig)
])

app.layout = html.Div([dcc.Graph(figure=surf_fig)])

app.run_server(debug=True, use_reloader=False)  

任何建议都会很棒!提前致谢!

0 个答案:

没有答案