我有一系列子图,每个子图都有一个图例,我希望在每个子图之外与相邻的子图重叠。问题在于传奇是在顶部'它自己的情节,但低于邻近的情节。传说不会将zorder作为参数,所以我不确定如何解决问题。这是我用过的代码:
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 2 * np.pi, 400)
y = np.sin(x ** 2)
f, ((ax1, ax2), (ax3, ax4)) = plt.subplots(2, 2, sharex='col', sharey='row')
f.subplots_adjust(hspace=0.15,wspace=0.1)
for i,j in enumerate([ax1,ax2,ax3,ax4],start=1):
j.set_title(r'%s'%i)
ax1.plot(x, y,label='curve')
ax2.scatter(x, y)
ax3.scatter(x, 2 * y ** 2 - 1, color='r')
ax4.plot(x, 2 * y ** 2 - 1, color='r')
bbox=(1.3, 1.)
ax1.legend(loc=1,bbox_to_anchor=bbox)
plt.savefig('example.png')
答案 0 :(得分:4)
图例不会使用zorder
参数,但axes
对象会执行:
您可以尝试:
ax2.set_zorder(-1)
所以ax2
落后于ax1。
或者,您可以将ax1
转发:
ax1.set_zorder(1)
并且由于您的图例是ax1
的对象,它会将图例(ax1
)置于第二个图的顶部。
HTH