我正在尝试在 3D 框中绘制粒子的波函数。这需要我绘制 4 个变量:x、y、z 轴和概率密度函数。
概率密度函数为:
abs((np.sin((p*np.pi*X)/a))*(np.sin((q*np.pi*Y)/b))*(np.sin((r*np.pi*Z)/c)))**2
我np.arange()
用于 X、Y 和 Z。
我已经读过要做到这一点,您需要绘制 4D 绘图的表面。 这是它应该看起来的样子:
我正在尝试在 3D 框中绘制粒子的波函数。这需要我绘制 4 个变量:x、y、z 轴和概率密度函数。
概率密度函数为:
abs((np.sin((p*np.pi*X)/a))*(np.sin((q*np.pi*Y)/b))*(np.sin((r*np.pi*Z)/c)))**2
我np.arange()
用于 X、Y 和 Z。
我已经读过要做到这一点,您需要绘制 4D 绘图的表面。 这是它应该看起来的样子:
这不是真正的 4D 数据。正如 Geoff 所说,它是 3D 标量数据,即您正在可视化三个变量的标量函数:.
有几种方法可以可视化此类数据,并且有许多工具可以帮助您。我将向您展示您可以制作的几种风格的情节。
显示一个或多个的等高线图表面,可能具有透明度。
在数学中,
ContourPlot3D[
Abs[Sin[\[Pi] x] Sin[\[Pi] y] Sin[\[Pi] z]]^2 == 1/2,
{x, -1, 1}, {y, -1, 1}, {z, -1, 1}]
显示常数概率为 0.2、0.5 和 0.8 的曲面:
ContourPlot3D[
Abs[Sin[\[Pi] x] Sin[\[Pi] y] Sin[\[Pi] z]]^2,
{x, -1, 1}, {y, -1, 1}, {z, -1, 1}, Contours -> {0.2, 0.5, 0.8},
ContourStyle -> (Directive[#, Opacity[0.25]] & /@ {Yellow, Orange, Red}),
Lighting -> "Neutral", Mesh -> None]
您可以进行某种类型的体积可视化,可能使用剪切和切片。您将能够为 3D 中的每个点指定颜色和不透明度。更高级的工具还可以让您选择传输函数。
imgdata =
Table[Abs[Sin[\[Pi] x] Sin[\[Pi] y] Sin[\[Pi] z]]^2,
{x, -1., 1, .01}, {y, -1., 1, .01}, {z, -1., 1, .01}];
img = Image3D[imgdata, ClipRange -> {{150, 200}, {0, 100}, {0, 200}}]
切片通常会有所帮助,尤其是当您可以交互控制要显示的切片时。
Image3DSlices[img, Range[1, 200, 10]]
这些示例旨在说明您可以尝试创建哪些类型的可视化。您可以使用许多不同的免费和商业工具来制作绘图。