簡體   English   中英

使用 Plotly 創建 3D 曲面圖

[英]Creating 3D surface plots using in Plotly

我正在嘗試使用 ZA5E13387C005FE84D14E 中的三個 1D arrays 浮動創建 3D 表面 plot 這是我的數據的樣子:

    alpha_1 alpha_2   sse
0   0.01    0.01    4.817321e+07
1   0.01    0.11    4.854821e+07
2   0.01    0.21    4.864922e+07
3   0.01    0.31    4.869423e+07
4   0.01    0.41    4.870884e+07
... ... ... ...
95  0.91    0.51    4.859500e+07
96  0.91    0.61    4.857550e+07
97  0.91    0.71    4.855622e+07
98  0.91    0.81    4.853898e+07
99  0.91    0.91    4.852403e+07

我想創建一個基本上模仿這個 3d plot 的表面 plot。 This is the code I am using to generate the 3D plot: see here 3D plot I want to make as surface plot

x = np.asarray(surface_df['alpha_1'])
y = np.asarray(surface_df['alpha_2'])
z = np.asarray(surface_df['sse'])

fig = plt.figure()
ax = plt.axes(projection="3d")
ax.scatter3D(x, y, z, c=z);
plt.show()

但這是我用 Plotly 得到的表面 plot。 表面 plot 來自 Plotly。

這是我用於 plotly 的代碼。

fig = go.Figure(data=[go.Surface(x=surface_df['alpha_1'].values,y=surface_df['alpha_2'].values,z=surface_df[['alpha_1','sse','alpha_2']].values)])

fig.update_layout(title='plot', autosize=True,
                  width=500, height=500)
fig.show()

任何指針將不勝感激,謝謝!

我認為您需要創建二維數組才能 plot 曲面。

import pandas as pd
import numpy as np
import plotly.graph_objects as go 
from scipy.interpolate import griddata

#Read data
data = pd.read_csv('your_data_set.txt', header=0, delimiter='\t')

#Create meshgrid for x,y
xi = np.linspace(min(data['alpha_1']), max(data['alpha_1']), num=100)
yi = np.linspace(min(data['alpha_2']), max(data['alpha_2']), num=100)

x_grid, y_grid = np.meshgrid(xi,yi)

#Grid data
z_grid = griddata((data['alpha_1'],data['alpha_2']),data['sse'],(x_grid,y_grid),method='cubic')

# Plotly 3D Surface
fig = go.Figure(go.Surface(x=x_grid,y=y_grid,z=z_grid,
                       colorscale='viridis'))

fig.show()

有關網格化方法的附加信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM