我正在创建一个包含多个子块的图形。其中一个子块给我带来了一些麻烦,因为没有一个轴角或中心可以自由(或可以自由)放置图例。我想做的是将图例放置在“左上”和“左中”位置之间的某个位置,同时使其与y轴之间的填充与其他子批次中的图例(使用预定义的图例位置关键字之一放置)相等。
我知道我可以通过使用loc=(x,y)
指定一个自定义位置,但是我不知道如何使图例和y轴之间的填充等于其他图例使用的填充。是否可以以某种方式使用第一个图例的borderaxespad
属性?尽管我没能成功地让它发挥作用。
欢迎提出任何建议!
编辑:这里有一个(非常简单)的问题说明:
import matplotlib.pyplot as plt
fig, ax = plt.subplots(1, 2, sharex=False, sharey=False)
ax[0].axhline(y=1, label='one')
ax[0].axhline(y=2, label='two')
ax[0].set_ylim([0.8,3.2])
ax[0].legend(loc=2)
ax[1].axhline(y=1, label='one')
ax[1].axhline(y=2, label='two')
ax[1].axhline(y=3, label='three')
ax[1].set_ylim([0.8,3.2])
ax[1].legend(loc=2)
plt.show()
我想要的是右边的图例稍微向下移动,这样它就不再与线重叠。 作为最后的手段,我可以改变轴心的限制,但我非常想避免。
在花了太多的时间在这上面之后,我提出了以下令人满意的解决方案(肯定有帮助的Transformations Tutorial):
然后,我发现以下两项都起作用,并为填充提供相同的值:
或者
然后将图例设置为:
绘图:
我看到你贴的答案,就试了一下。但问题是,它也取决于数字大小。
下面是一个新的尝试:
所以我现在做的基本上是从子块中得到坐标。然后根据整个图形的尺寸创建图例。因此,图形大小不再改变图例的位置。
使用
x_value
和y_value
的值,图例可以定位在子批次中。x_value
已被密切关注,以寻找与“正常”传说的良好对应。这个值可以根据你的意愿改变。y_value
确定图例的高度。祝你好运!
相关问题 更多 >
编程相关推荐