使用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))})

enter image description here

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...