我希望从一些类似网格的数据中绘制一些密度图:
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插值密度图,如下所示。

发布于 2021-02-23 01:05:06
插图
来自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
https://stackoverflow.com/questions/66261066
复制相似问题