Plotly 绘制表面 3D 未显示

Posted

技术标签:

【中文标题】Plotly 绘制表面 3D 未显示【英文标题】:Plotly Plot surface 3D not displayed 【发布时间】:2018-08-04 14:05:03 【问题描述】:

我真的在论坛上找不到答案。我想用 plotly 离线创建一个 3d 表面。我使用样本点。场景显示为空而没有表面。请帮忙,谢谢。

import pandas as pd
import numpy as np
from plotly.offline import download_plotlyjs, init_notebook_mode, plot
from plotly.graph_objs import *
init_notebook_mode()
df3=pd.DataFrame('x':[1,2,3,4,5], 'y':[10,20,30,20,10], 'z':[5,4,3,2,1])

trace0= Surface(x=df3['x'], y=df3['y'], z=df3['z'])
data=[trace0]
fig=dict(data=data)
plot(fig)

【问题讨论】:

【参考方案1】:

问题是您还没有定义数据表面,因为您的 z 数据只是一维的。例如,这应该显示一个表面:

import pandas as pd
import numpy as np
from plotly.offline import download_plotlyjs, init_notebook_mode, plot
from plotly.graph_objs import *
init_notebook_mode()

df3=pd.DataFrame(
    'x':[1,2,3,4,5],
    'y':[10,20,30,20,10],
    'z':[[5,4,3,2,1]] * 5
)

trace0= Surface(x=df3['x'], y=df3['y'], z=df3['z'])
data=[trace0]
fig=dict(data=data)
plot(fig)

【讨论】:

我不确定我是否遵循这一点......如果我特别关注二维高斯分布......我不应该为每个 x,y 设置一个 z 吗?跨度> 是的。上面的z 就像一个二维矩阵。请注意,在 Python 中,如果 a = [[1, 2]],则 a * 2 将是 [[1, 2], [1, 2]]。所以这只是一个简单的例子来演示所需数据的形式。

以上是关于Plotly 绘制表面 3D 未显示的主要内容,如果未能解决你的问题,请参考以下文章

使用 R 进行 2D 投影的 3D 表面

在 R 时间内为系列数据绘制 3D 曲面图

在 R 时间内为系列数据绘制 3D 曲面图

R语言使用plotly绘制3D散点图实战

使用 Plotly.js 在 3D 图中绘制 2D 平面

如何使用 plotly.graph_objects 绘制 3D 线?