亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

plotly 3D Topographical 3D Surface Plot with

plotly 3D Topographical 3D Surface Plot with

qq_遁去的一_1 2022-07-19 10:59:44
我在 padas 數據框中有一個坐標點云接下來,我想繪制一個繪圖曲面圖,但 Surface 方法需要 z 參數中的二維數組,我不知道如何構建它。go.Figure(data=[go.Surface(z=z, x=x, y=y)])
查看完整描述

2 回答

?
慕運維8079593

TA貢獻1876條經驗 獲得超5個贊

我認為您需要先對數據進行網格化。我根據您的數據創建了一個示例。


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('data.txt', header=0, delimiter='\t')


#Create meshgrid for x,y

xi = np.linspace(min(data['x']), max(data['x']), num=100)

yi = np.linspace(min(data['y']), max(data['y']), num=100)


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


#Grid data

z_grid = griddata((data['x'],data['y']),data['z'],(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',showlegend=True)

)


fig.show()

來自示例數據的 3D 表面


您可以使用不同的網格劃分方法(三次、線性、最近) https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.griddata.html


查看完整回答
反對 回復 2022-07-19
?
德瑪西亞99

TA貢獻1770條經驗 獲得超3個贊

這絕對是一個糟糕的設計,go.Surface不支持直接使用DataFramesas 參數。想象一下,您交換了xy,例如:x=df.index, y=df.columns, z=df.values. 如果您不仔細檢查,您將不會注意到您的 x 軸數據沒有完全顯示。那是因為你顛倒了xand y,這給了你錯誤的結果!



查看完整回答
反對 回復 2022-07-19
  • 2 回答
  • 0 關注
  • 126 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號