正如问题所暗示的那样,我试图缩小传奇帧的左边边缘和标记之间的距离。
如图所示,是当前的阴谋。我想找个办法:
( 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)
我选择了希南?库尔默斯的回答来支持他的军衔。
发布于 2020-02-22 05:22:54
尝试对borderpad
使用负值。这可能会导致传说也向下移动,所以请使用borderaxespad
进行调整。
就像这样:
leg = ax.legend(
fontsize=13, loc="lower left", frameon=True,
framealpha=1, handletextpad=-0.6,
labelspacing=0.08, borderpad=-0.5, borderaxespad=1)
请注意,我使用"lower left"
作为图例位置,而不是绝对位置。否则,整个“用borderpad
和borderaxspread
移动东西”就会变得摇摇欲坠(我知道,这不是一个非常精确的解释)。
发布于 2020-02-22 05:14:50
您可以尝试添加以下参数并根据您的选择更改值
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)
https://stackoverflow.com/questions/60352238
复制