Я хотел бы визуализировать 2D-срезы на 3D-графике с помощью matplotlib и Axes3D, с некоторой прозрачностью для лучшего обзора, как представлено
, где 2D-срезы явно перекрываются. Эти фрагменты создаются pcolor
, который, в отличие от pcolormesh
, возвращает объект matplotlib.collections.Collection
и, следовательно, может обрабатываться add_collection3d
.
. Вопрос переноса свойства прозрачности уже обсуждался. там и там , хотя предложенные обходные пути (в Python комментариях ниже) не повлияли на мою проблему. Мой пример кода что-то вроде
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from matplotlib.collections import PolyCollection
X, Y = np.meshgrid(x,y)
fig = plt.figure()
ax = fig.gca(projection='3d')
alpha = 0.8
for i in range(len(islices)):
im = ax.pcolor(X,Y,u[islices[i],:,:]) #,alpha=alpha)
#im.set_facecolor((0, 0, 1, alpha))
ax.add_collection3d(im,zs=xslices[i],zdir='y')
plt.show()