繁体   English   中英

plotly 3D 卷 plot 是如何生成的?

[英]How is the plotly 3D volume plot generated?

我在 plotly 3D 体积图的示例中遇到了以下代码:

import plotly.graph_objects as go
import numpy as np


x1 = np.linspace(-4, 4, 9) 
y1 = np.linspace(-5, 5, 11) 
z1 = np.linspace(-5, 5, 11) 

X, Y, Z = np.meshgrid(x1, y1, z1)

values = (np.sin(X**2 + Y**2))/(X**2 + Y**2)

fig = go.Figure(data=go.Volume(
    x=X.flatten(),
    y=Y.flatten(),
    z=Z.flatten(),
    value=values.flatten(),
    opacity=0.1,
))

fig.show()

据我了解,“x”、“y”和“z”构成了基本 3D 网格立方体网格,我认为“值”forms 是 Z76AA96369ABBBA52E621BFA83DA8E 网格中的实际形状。 问题是我不完全了解“值”字段是如何用于形成内部体积的,并且文档似乎根本没有帮助。

我最初认为 3D 值数组中的每一行(或列)代表网格中的一个点,但从实验来看,这似乎不是正在发生的事情。 有人可以解释一下这是如何工作的吗?

为了我的绘画能力,让我们在 2D 中讨论这个。

基本上发生的事情是您正在创建一个网格并为给定的坐标组合分配一个值。

假设您从一个 10x10 网格开始,其中所有values都为零。

零网格

如果你想在这个 2D 空间中创建一个“立方体”,你可以这样做:

在此处输入图像描述

其中 X[3:6] 和 Y[3:6] 的值设置为 1。

这会给你一个统一的音量。

假设您想让立方体的中心更加“集中”,以表示诸如某物中心的温度之类的东西。

您只需将值设置为更高的 int。

立方体

现在采用完全相同的概念并将其扩展到 3D 尺寸,您就拥有了 3D 体积。 展平那里的values列表将为您提供一个列表,其中包含 3D 网格中每个点的值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM