Python中的4D密度图

3

我想绘制一些密度地图来展示一些类似网格的数据:

X,Y,Z = np.mgrids[-5:5:50j, -5:5:50j, -5:5:50j]
rho = np.random.rand(50,50,50) #for the sake of argument

我希望能够通过Python生成类似于以下Mathematica示例中所示的插值密度图:

这里,是否有Matplotlib或其他绘图套件可用于此类图形的绘制?

需要明确的是,我不想要一个彩色点的散点图,因为这不适合我尝试创建的图表类型。我想要一个3D插值密度图,如下所示:

4D Density Plot


这个回答解决了你的问题吗?如何使用matplotlib绘制带有任意数据的4D图 - Jay Patel
谢谢您,但是很遗憾,这些不符合我的要求。 - Jack Rolph
1个回答

4

Plotly

Plotly方法(https://plotly.com/python/3d-volume-plots/)使用np.mgrid。

import plotly.graph_objects as go
import numpy as np
X, Y, Z = np.mgrid[-8:8:40j, -8:8:40j, -8:8:40j]
values = np.sin(X*Y*Z) / (X*Y*Z)

fig = go.Figure(data=go.Volume(
    x=X.flatten(),
    y=Y.flatten(),
    z=Z.flatten(),
    value=values.flatten(),
    isomin=0.1,
    isomax=0.8,
    opacity=0.1, # needs to be small to see through all surfaces
    surface_count=17, # needs to be a large number for good volume rendering
    ))
fig.show()

screenshot of interactive output

Pyvista

体积渲染示例: https://docs.pyvista.org/examples/02-plot/volume.html#sphx-glr-examples-02-plot-volume-py

你可能需要使用pyvista的3D插值代码: 使用numpy和/或scipy插值3D体积


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接