这是一件让我很烦的快速事情。我已经按照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/