首页 > 解决方案 > 在 plotly 中创建 3d 曲面图

问题描述

我有以下数据:

在此处输入图像描述

我正在尝试绘制 x=long, y=short, z=balance

我已经这样做了:

fig.add(go.Scatter3d(x=results['long'], y=results['short'], z=results['balance']))

我得到类似的东西:

在此处输入图像描述

我真正要找的是一个表面,比如​​这个例子:

在此处输入图像描述

所以,按照示例的代码,我做了:

fig.add_surface(x=results['long'], y=results['short'], z=results['balance'], row=2, col=1)

但:

在此处输入图像描述

它不仅不显示任何数据,而且似乎完全忽略了子图布局并绘制了所有内容。

这是完整的代码:

fig = make_subplots(rows=2, cols=1, specs=[[{'type': 'xy'}], [{'type': 'scene'}]])

fig.add_trace(go.Scatter(x=series1['timestamp'], y=series1['data'], line_color='red', name='series 1'), row=1, col=1)
fig.add_trace(go.Scatter(x=series2['timestamp'], y=series2['data'], line_color='blue', name='series 2'), row=1, col=1)
fig.update_yaxes(title_text="USD", row=1, col=1)

fig.add_surface(x=results['long'], y=results['short'], z=results['balance'], row=2, col=1)
fig.show()

所以,我的问题是:

标签: pythonplotly

解决方案


两个答案:

  1. surface迹线接受二维矩阵z
  2. 3-d 轨迹绘制在layout.scene与 2-d 笛卡尔子图不同的对象中

推荐阅读