如何解决使用Plotly中的三个一维浮点数组创建3D表面图
我正在尝试使用浮点数组创建3D表面图。我尝试了可用的答案,但没有成功。
我的代码:
ydata xdata zdata
0 667.029710 38.666953 2156.370026
1 673.518030 38.578639 2167.733673
2 928.285970 39.558060 2984.315454
3 947.973966 39.329530 3065.414025
4 904.826638 40.241960 3071.355114
5 901.673720 40.259228 2947.752668
6 910.980404 41.478425 2906.467214
7 916.008852 41.813555 2933.900440
8 913.971114 41.583315 2955.543549
9 933.040692 42.577816 2979.264288
import plotly.graph_objects as go
import plotly.graph_objs
import pandas as pd
import numpy as np
xdata = df['xdata'].values
ydata = df['ydata'].values
zdata = df['zdata'].values
plotly.offline.plot({"data":[go.Surface(z=zdata,x=xdata,y=ydata)],"layout":plotly.graph_objs.Layout(title='Some data',autosize=False,width=500,height=500,margin=dict(l=65,r=50,b=65,t=90))})
它没有产生输出。我看到了3d图,但没有任何数据。
解决方法
如果数据是在一维中指定的,则不会显示该数据,因为不会为其配置3D信息。如果按照代码指定整个数据框,则将显示它。 Official Reference
import pandas as pd
import numpy as np
import io
data = '''
ydata xdata zdata
0 667.029710 38.666953 2156.370026
1 673.518030 38.578639 2167.733673
2 928.285970 39.558060 2984.315454
3 947.973966 39.329530 3065.414025
4 904.826638 40.241960 3071.355114
5 901.673720 40.259228 2947.752668
6 910.980404 41.478425 2906.467214
7 916.008852 41.813555 2933.900440
8 913.971114 41.583315 2955.543549
9 933.040692 42.577816 2979.264288
'''
df = pd.read_csv(io.StringIO(data),sep='\s+')
import plotly.graph_objects as go
import plotly.graph_objs
# xdata = df['xdata'].values
# ydata = df['ydata'].values
# zdata = df['zdata'].values
plotly.offline.plot({"data":[go.Surface(z=df.values)],"layout":plotly.graph_objs.Layout(title='Some data',autosize=False,width=500,height=500,margin=dict(l=65,r=50,b=65,t=90))})
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。