Python matplolib图例如何减少帧左边缘和标记之间的距离

Python matplolib图例如何减少帧左边缘和标记之间的距离,python,python-3.x,matplotlib,legend,Python,Python 3.x,Matplotlib,Legend,正如问题所暗示的,我正试图缩小图例框架左边缘和标记之间的距离 图中是当前的绘图。我想找到一种方法: 1) 保持frameon=True,以部分掩盖基础点 2) 向左移动标记和标签,减少图例边和标记之间的距离 实际图例配置如下所示: leg = ax.legend(handles=legend_elements, fontsize=13, loc=(0.03, 0.01), frameon=True, framealpha=0.5, handletextpad=-0.6

正如问题所暗示的,我正试图缩小图例框架左边缘和标记之间的距离

图中是当前的绘图。我想找到一种方法:

1) 保持
frameon=True
,以部分掩盖基础点

2) 向左移动标记和标签,减少图例边和标记之间的距离

实际图例配置如下所示:

leg = ax.legend(handles=legend_elements, 
      fontsize=13, loc=(0.03, 0.01), frameon=True, 
      framealpha=0.5, handletextpad=-0.6, 
      labelspacing=0.08, borderpad=0)
编辑:解决方案 感谢两位提供了最快的答案,解决方案结合了您的两个建议:

leg = ax.legend(handles=legend_elements, 
      fontsize=13, loc=(0.03, 0.01), frameon=True, 
      framealpha=0.5, handletextpad=0., 
      labelspacing=0.08, borderpad=0.,
      handlelength=1.2, borderaxespad=1)

我选择Sinan Kurmus answer作为最佳答案以支持他的排名

您可以尝试添加以下参数,并根据您的选择更改值

handlelength=1
示例

fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(9, 3))
np.random.seed(10)

# WITHOUT handlelength
ax1.plot(np.random.randint(0, 10, 5), np.random.randint(0, 10, 5), 'bo', label='data1')
ax1.plot(np.random.randint(0, 10, 5), np.random.randint(0, 10, 5), 'rs', label='data2')
leg = ax1.legend(fontsize=19, loc=(0.03, 0.01), frameon=True, 
      framealpha=0.5, handletextpad=0.5, 
      labelspacing=0.08, borderpad=0.0)


# WITH handlelength
ax2.plot(np.random.randint(0, 10, 5), np.random.randint(0, 10, 5), 'bo', label='data1')
ax2.plot(np.random.randint(0, 10, 5), np.random.randint(0, 10, 5), 'rs', label='data2')
leg = ax2.legend(fontsize=19, loc=(0.03, 0.01), frameon=True, 
      framealpha=0.5, handletextpad=0.5, 
      labelspacing=0.08, borderpad=0.0, handlelength=1)

尝试为
边框使用负值。这可能会导致图例向下移动,因此使用
borderaxespad
进行调整

大概是这样的:

leg = ax.legend( 
      fontsize=13, loc="lower left", frameon=True, 
      framealpha=1, handletextpad=-0.6, 
      labelspacing=0.08, borderpad=-0.5, borderaxespad=1)
请注意,我使用了
“左下角”
作为图例位置,而不是绝对位置。否则整个“用
borderpad
borderaxspread
移动东西”就会变得不可靠(我知道这不是一个非常精确的解释:)