我正在使用 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)
Run Code Online (Sandbox Code Playgroud)
我想保持上部和下部子图与子图 1 具有相同的图例。
然而,当我在第二个子图中调低顺序时leg2,它被画布覆盖。这是我的问题,有没有什么方法可以将一个子图的图例复制到另一个子图?
问题是第二个图例是第一个子图的一部分,而第一个子图完全位于第二个子图后面。
通常,您会将图例添加到第二个子图而不是第一个子图中。
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()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
484 次 |
| 最近记录: |