В настоящее время я пытаюсь построить набор 2D-массивов в 3D-график, в основном я хотел бы построить массив как изоповерхность и сложить их вместе. Наиболее близким примером, который я мог найти, является такой код
[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]
, который дает следующий рисунок Выход (пример также здесь https://plot.ly/python/3d-surface-plots/): В этомНа графике разделение по оси Z дается путем добавления + 1 и -1 к z1 (z2 = z1 + 1 z3 = z1 - 1), но это имеет проблему с фактическим изменением значений 2d массивов.
Есть ли способ построить 2d-массивы таким же образом, но без изменения значений самого массива? Я имею в виду, добавив значение разделения между ними. Ps также ответ в стандартном matplotlib был бы отличным!
Большое спасибо!