簡體   English   中英

需要幫助了解如何使用 plotly 對 3d 表面 plot

[英]Need help in understanding how to 3d surface plot using plotly

我正在嘗試 plot 一個 function z= sinx 舒適超過 -pi 到 pi

這是我希望得到的

也這樣顯示

這是我編寫的嘗試做同樣的代碼:

import plotly.graph_objs as go
from scipy.linalg import toeplitz

x=np.linspace(-np.pi,np.pi,30)
z = [(np.sin(i)*np.cos(i)) for i in x]

fig = go.Figure(data=[go.Surface(x=x, y=x, z=toeplitz(z))])
fig.show()

我得到的 plotly output

我無法理解我必須將 z 坐標列數據轉換為什么“網格”或“二維數組”格式才能獲得正確的圖形。 Toeplitz 試圖做同樣的事情,但與所需的圖不同,它看起來是對稱的。 請幫忙

我想我明白了,如果您遇到類似的問題,您可以參考/使用下面的代碼

import numpy as np
import plotly.graph_objs as go
f = lambda x,y: np.sin(x) * np.cos(y)
x = np.linspace(-np.pi, np.pi, 30)
y = np.linspace(-np.pi, np.pi, 30)
X,Y = np.meshgrid(x,y)
F = f(X,Y)

fig = go.Figure(data=[go.Surface(x=X, y=Y, z=F)])
fig.show()

暫無
暫無

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

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