【问题标题】:4D Density Plot in PythonPython 中的 4D 密度图
【发布时间】:2021-05-21 11:17:24
【问题描述】:

我希望从一些类似网格的数据中绘制一些密度图:

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 here 生成如下所示的插值密度图。

Matplotlib 或其他绘图套件中是否有任何解决方案可用于此类绘图?

要清楚,我不想要彩色点的散点图,这不适合我试图制作的图。我想要一个 3D 插值密度图,如下所示。

【问题讨论】:

标签: python matplotlib graphics 3d


【解决方案1】:

情节

https://plotly.com/python/3d-volume-plots/ 的 Plotly 方法使用 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()

Pyvista

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

pyvista 可能需要的 3D 插值代码: interpolate 3D volume with numpy and or scipy

【讨论】:

    猜你喜欢
    • 2021-01-13
    • 1970-01-01
    • 2018-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-06
    相关资源
    最近更新 更多