У меня следующий код по ссылке здесь для генерации стопки изображений с использованием ax.contourf()
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.gca(projection='3d')
x = np.linspace(0, 1, 100)
X, Y = np.meshgrid(x, x)
Z = np.sin(X)*np.sin(Y)
levels = np.linspace(-1, 1, 40)
ax.contourf(X, Y, .1*np.sin(3*X)*np.sin(5*Y), zdir='z', levels=.1*levels)
ax.contourf(X, Y, 3+.1*np.sin(5*X)*np.sin(8*Y), zdir='z', levels=3+.1*levels)
ax.contourf(X, Y, 7+.1*np.sin(7*X)*np.sin(3*Y), zdir='z', levels=7+.1*levels)
ax.legend()
ax.set_xlim3d(0, 1)
ax.set_ylim3d(0, 1)
ax.set_zlim3d(0, 10)
Вывод выглядит примерно так: обратите внимание, что края имеют зигзагообразную форму:

Теперь я хочу вырезать стеков, используя круглое или прямоугольное пятно, чтобы получить сглаженные края, как что-то реализованное здесь
Но, похоже, set_clip_path
- это метод экземпляра для Axes
.
Еще один способ построения стопки изображений - это использование plot_surface
и применение данных к цвету лица, подробности можно найти здесь . Таким образом, мы можем избежать эффекта зигзага на краях, как показано в методе ax.contourf()
. Лучший сюжет края выглядит как

Однако он имеет недостатки:
- медленнее по сравнению с контуром
- и это не применимо, если нам нужен только круговой патч данных.
Есть ли какой-нибудь умный способ добиться версии клипа в 3d корпусе?