这是一件让我很烦的快速事情。我已经按照strange matplotlib zorder behavior with legend and errorbar中的指示进行操作,但是它不起作用。这是一个非常简短的工作示例

x = np.linspace(0,10)
y = (x-5)**2
plt.plot(x,y,label='test curve',zorder=100)
plt.legend(loc='center right').set_zorder(102)


如果您尝试此操作,则将看到图例仍在曲线下方,即使zorder也是如此。有人知道为什么吗?



我在ipython 3.1.0上使用matplotlib 1.3.1

最佳答案

在@cel的评论之后,我同意您需要为图例添加不透明的背景。尝试添加:

leg=plt.legend(loc='center right')
leg.set_zorder(102)
leg.get_frame().set_facecolor('w')


也可以在您的legend.facecolor中或通过matplotlibrc设置plt.rcParams



或者,确保图例框架的fill设置为True

print leg.get_frame().get_fill()


如果显示False,请尝试

leg.get_frame().set_fill(True)

关于python - matplotlib.legend.set_zorder()在ipython笔记本中不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33648920/

10-12 18:19