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 未显示的主要内容,如果未能解决你的问题,请参考以下文章