带插图的Matlplotlib图:在原始轴上创建图例

时间:2015-09-23 18:05:04

标签: python matplotlib legend axes

我有一个非常简单的问题,我无法找到答案:

使用matplotlib我在主图中绘制一些东西,然后使用插图在插图中绘制其他内容。

a = plt.axes([.2, .64, .28, .24])

但之后我想在主图中再次绘制一个图例(因为图例中包含了同时发现的东西)。

我该怎么做?如何如何回到原始情节并制作传奇?

我尝试过不同的事情,包括sca,但没有任何效果。

1 个答案:

答案 0 :(得分:2)

plt.sca(main_ax)应该有效。请注意,如果您没有为曲线/情节/等指定标签,则只有在您拨打plt.legend()时才会显示。 (相反,您需要plt.legend([line], [label]),或者更好,请致电plot(x, y, label='some label')。)

但是,以不同的方式解决问题会更好。

这是您经常看到人们建议避免使用pyplot界面并使用Axes / Figure方法的众多原因之一。它可以清楚地表明您正在操作哪些轴。

例如:

import matplotlib.pyplot as plt

fig, ax = plt.subplots()
ax.plot(range(10), label='Curve 1')

inset = fig.add_axes([.2, .64, .28, .24])
inset.scatter(range(3), range(3))

ax.legend()

plt.show()

enter image description here