在 Plotly 中创建 3D 曲面图
Posted
技术标签:
【中文标题】在 Plotly 中创建 3D 曲面图【英文标题】:Create a 3D surface plot in Plotly 【发布时间】:2021-12-06 01:47:59 【问题描述】:我想通过从外部文件读取数据。以下是我正在使用的代码:
import numpy as np
import plotly.graph_objects as go
import plotly.express as px
data = np.genfromtxt('values.dat', dtype=float)
# The shape of X, Y and Z is (10,1)
X = data[:,0:1]
Y = data[:,1:2]
Z = data[:,2:3]
fig = go.Surface(x=X, y=Y, z=Z, name='Surface plot', colorscale=px.colors.sequential.Plotly3)
plot(fig)
上面的代码不会产生任何表面图。创建曲面图需要进行哪些更改?
【问题讨论】:
【参考方案1】:来自情节图参考:
描述表面坐标的数据设置在z
中。 z
中的数据应该是一个二维列表。 x
和 y
中的坐标可以是一维列表或2D 数组
我有一个示例数据集。它包含三列 (x,y,z)。
import plotly.graph_objects as go
import pandas as pd
import numpy as np
from scipy.interpolate import griddata
df = pd.read_csv('./test_data.csv')
x = np.array(df.lon)
y = np.array(df.lat)
z = np.array(df.value)
xi = np.linspace(x.min(), x.max(), 100)
yi = np.linspace(y.min(), y.max(), 100)
X,Y = np.meshgrid(xi,yi)
Z = griddata((x,y),z,(X,Y), method='cubic')
fig = go.Figure(go.Surface(x=xi,y=yi,z=Z))
fig.show()
参考页面:https://plotly.com/python/reference/surface/
【讨论】:
以上是关于在 Plotly 中创建 3D 曲面图的主要内容,如果未能解决你的问题,请参考以下文章