我想了解如何从X,Y,Z实数组中绘制一个3D曲面。所以,我找到了一个很好的Plotlu 3D曲面绘图的例子。
import plotly.graph_objects as go
import pandas as pd
# Read data from a csv
z_data = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/api_docs/mt_bruno_elevation.csv')
fig = go.Figure(data=[go.Surface(z=z_data.values)])
fig.update_layout(title='Mt Bruno Elevation', autosize=False,
width=500, height=500,
margin=dict(l=65, r=50, b=65, t=90))
fig.show()
但是,mt_bruno_elevation. csv的数据让我有点困惑。我不明白数据在csv中到底代表什么,如果我有一个X,Y,Z数组的真实数据,如何建立类似的东西。
最简单的曲面方程是z=f(x,y)的形式。据我所知,在这个例子中。z-data
是一个二维数组。请看下面的例子。
z-data = [
[ 0.1, 0.2, 0.3, 0.4 ],
[ 0.5, 0.6, 0.7, 0.8 ],
[ 0.9, 1.0, 1.1, 1.2 ],
[ 1.3, 1.4, 1.5, 1.6 ]
]
这是一个z矩阵。也就是这些数字是不同的Z轴的值。x
和 y
. 现在的问题是,什么 x
和 y
是。
的第一要素。z-data
( [ 0.1, 0.2, 0.3, 0.4 ]
)为常数。y=0
和不同数值的 x
. 所以(x,y,z)的第一个值(0.1)等于(0,0,0.1)。对于第二个值(0.2)等于(1,0,0.2),以此类推。
的第二个元素 z-data
( [ 0.5, 0.6, 0.7, 0.8 ]
)为常数。y=1
和不同数值的 x
. 所以(x,y,z)对于第一个值(0.5)等于(0,1,0.5)。对于第二个值(0.6)等于(1,1,0.2),以此类推。