python - 从 2D 数组中绘制 3D 绘图
问题描述
我目前正在尝试将一组 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 ) 但这存在实际更改二维数组的值的问题。
有没有办法以相同的方式绘制二维数组但不改变数组本身的值?我猜,意思是在它们之间添加一个分隔值。Ps 标准 matplotlib 中的答案也会很棒!
非常感谢!
解决方案
推荐阅读
- php - 带有来自ajax的数组的MYSQL查询
- ruby-on-rails - 如何在没有javascript的情况下在rails(最后通牒)中创建倒计时
- javascript - Alfresco 内容服务 ADF APP。在客户端启用 CORS?
- solidity - Solidity循环并在一个函数中写入数据
- python - UnicodeEncodeError:“charmap”编解码器无法对位置 0-9 中的字符进行编码:字符映射到
- c++ - C ++从父结构覆盖数据不起作用
- r - 在 R 中的不同数据帧中应用相同的计算
- python - Python - 如何在运行时在单元测试中屏蔽一个类
- oracle - Oracle 顶点级联数值
- vb.net - 在字符串中查找字符的位置