如何在图表坐标中指定图例位置

9 浏览
0 Comments

如何在图表坐标中指定图例位置

我知道bbox_to_anchor关键字和这个帖子,它非常有用地建议了如何手动放置图例:

如何将图例放在图外

然而,我想使用图中x轴和y轴的坐标来指定图例的位置(在图中),因为我可能需要将图转移到具有不同坐标轴环境的大图中,并且我不想每次都手动调整这些坐标。这可行吗?

编辑:这里有一个小例子:

import numpy as n
f, axarr = plt.subplots(2,sharex=True)
axarr[1].set_ylim([0.611,0.675])
axarr[0].set_ylim([0.792,0.856]) 
axarr[0].plot([0, 0.04, 0.08],n.array([ 0.83333333,  0.82250521,0.81109048]), label='test1') 
axarr[0].errorbar([0, 0.04, 0.08],n.array([ 0.8,  0.83,   0.82]),n.array([0.1,0.1,0.01]), label='test2') 
axarr[1].plot([0, 0.04, 0.08],n.array([ 0.66666667,  0.64888304,  0.63042428]))
axarr[1].errorbar([0, 0.04, 0.08],n.array([ 0.67,  0.64,  0.62]),n.array([ 0.01,  0.05,  0.1]))
axarr[0].legend(bbox_to_anchor=(0.04, 0.82, 1., .102),labelspacing=0.1,       handlelength=0.1, handletextpad=0.1,frameon=False, ncol=4, columnspacing=0.7)

enter image description here

我认为让我困惑的是图例实际上并不从0.82开始,事实上对于我的更大的图(具有5个类似的子图),我需要使用图例坐标bbox_to_anchor=(0.04, 1.15, 1., .102)才能使图例出现在坐标(0.02, 0.83)。但也许我还有其他地方弄错了?

0