繁体   English   中英

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

[英]Matlplotlib plot with inset: make legend in original axis

我有一个非常简单的问题,找不到以下答案:

使用matplotlib我在主图中绘制一些内容,然后在插图中使用例如int绘制其他内容

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

但是之后,我想在主图中再次绘制图例(因为在此期间图例中包含某些内容)。

我该怎么做呢? 就像我如何回到原始剧情并制作图例一样?

我尝试了其他方法,包括sca ,但没有任何效果。

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

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM