二维阵列的三维绘图

2024-06-28 18:48:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在尝试将一组二维阵列绘制成一个三维图基本上我想将阵列绘制为等值面并将它们叠加在一起。我能找到的最接近这种作品的例子是下面的代码

[import plotly.graph_objects as go
import numpy as np

z1 = np.array(\[
    \[8.83,8.89,8.81,8.87,8.9,8.87\],
    \[8.89,8.94,8.85,8.94,8.96,8.92\],
    \[8.84,8.9,8.82,8.92,8.93,8.91\],
    \[8.79,8.85,8.79,8.9,8.94,8.92\],
    \[8.79,8.88,8.81,8.9,8.95,8.92\],
    \[8.8,8.82,8.78,8.91,8.94,8.92\],
    \[8.75,8.78,8.77,8.91,8.95,8.92\],
    \[8.8,8.8,8.77,8.91,8.95,8.94\],
    \[8.74,8.81,8.76,8.93,8.98,8.99\],
    \[8.89,8.99,8.92,9.1,9.13,9.11\],
    \[8.97,8.97,8.91,9.09,9.11,9.11\],
    \[9.04,9.08,9.05,9.25,9.28,9.27\],
    \[9,9.01,9,9.2,9.23,9.2\],
    \[8.99,8.99,8.98,9.18,9.2,9.19\],
    \[8.93,8.97,8.97,9.18,9.2,9.18\]
\])

z2 = z1 + 1
z3 = z1 - 1

fig = go.Figure(data=\[
    go.Surface(z=z1),
    go.Surface(z=z2, showscale=False, opacity=0.9),
    go.Surface(z=z3, showscale=False, opacity=0.9)

\])

fig.show()][1]

它给出了下图Output(这里的示例也是https://plot.ly/python/3d-surface-plots/): 在该图中,z轴上的间隔通过将+1和-1加到z1(z2=z1+1)来表示 z3=z1-1),但这实际上会改变2d数组的值。你知道吗

有没有一种方法可以以相同的方式绘制二维数组,但不改变数组本身的值?意思是,我猜,在它们之间添加一个分隔值。 太好了!你知道吗

非常感谢!你知道吗


Tags: importfalsegoasnpfig绘制数组