如何在matplotlib

时间:2018-02-08 09:21:07

标签: python matplotlib

我正在使用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具有相同的图例。

enter image description here

但是,当我向下调整leg2以便在第二个子图中时,它会被画布覆盖。这是我的问题,有没有方法可以将一个子图的图例复制到另一个子图?

1 个答案:

答案 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()