我正在使用Matplotlib绘制一些简单的图形。一个例子说明如下:
x = np.linspace(0, 5, 1000)
fig =plt.figure(figsize=(7,7))
ax =plt.subplot(211)
ax.plot(x, np.sin(x), '-b', label='Sine')
ax.axis('equal')
leg1 = ax.legend(loc= (0.8,0.85));
leg2 = ax.legend(loc= (0.8,-0.15));
leg2.set_zorder(14)
ax.add_artist(leg1)
ax.add_artist(leg2)
ax =plt.subplot(212)
我想保持上下子图与子图1具有相同的图例。
但是,当我向下调整leg2
以便在第二个子图中时,它会被画布覆盖。这是我的问题,有没有方法可以将一个子图的图例复制到另一个子图?
答案 0 :(得分:3)
问题是第二个图例是第一个子图的一部分,第一个子图完全位于第二个子图之后。
通常,您可以将图例添加到第二个子图,而不是第一个。
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 5, 1000)
fig =plt.figure(figsize=(7,7))
ax =plt.subplot(211)
ax.plot(x, np.sin(x), '-b', label='Sine')
leg1 = ax.legend(loc= (0.8,0.85))
ax2 =plt.subplot(212)
leg2 = ax2.legend(*ax.get_legend_handles_labels(), loc= (0.8,0.85))
plt.show()