[英]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.