我试图在matplotlib中的fancyBoxPatch前面绘制一个球体。但是,球体被fancyBoxPatch覆盖。我的最小工作示例如下:
#!/usr/bin/env python3
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.patches import FancyBboxPatch
from mpl_toolkits.mplot3d import Axes3D
import mpl_toolkits.mplot3d.art3d as art3d
if __name__ == '__main__':
fig = plt.figure()
axes = fig.add_subplot(111, projection = '3d')
for i in range(7):
for j in range(7):
box = FancyBboxPatch((i, j),
1, 1,
boxstyle = 'square,pad=-0.1',
edgecolor = (0.333, 0.333, 0.333),
facecolor = (0.333, 0.333, 0.333))
#zorder = 0)
axes.add_patch(box)
art3d.pathpatch_2d_to_3d(box, z = 0, zdir = 'x')
u = np.linspace(0, 2 * np.pi, 100)
v = np.linspace(0, np.pi, 100)
x = 0.3 * np.outer(np.cos(u), np.sin(v))
y = 0.3 * np.outer(np.sin(u), np.sin(v))
z = 0.3 * np.outer(np.ones(np.size(u)), np.cos(v))
surface = axes.plot_surface(x + 1, y + 1, z + 5, color = 'red')
#zorder = 100,
#alpha = 1)
axes.set_xlim3d(0, 14)
axes.set_ylim3d(0, 14)
axes.set_zlim3d(0, 14)
plt.show()
从而产生了情节:
在图中,球体完全被fancyBoxPatches覆盖。在
正如您在脚本中注释掉的部分中所看到的,我使用了关键字参数“alpha”和“zorder”(我不想更改fancyBoxPatches的alpha),试图将球体绘制在fancyBoxPatches的顶部,但是没有成功。在
我怎样才能在fancyBoxPatches前面画出球体?或者答案与Matplotlib 3D plot zorder issue相似,我应该试试玛雅维?在
目前没有回答
相关问题 更多 >
编程相关推荐