问题描述
我正在尝试绘制一个函数 z= sinx 舒适超过 -pi 到 pi
This is what I'm hoping to get
这是我写的代码,试图做同样的事情:
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 that I'm getting
我一直无法理解我必须将我的 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,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()