我知道在Python的matlplotlib图例功能中,我们可以使用“labelspacing”调整标签之间的间距,例如:
lgd = ax.legend(..., labelspacing=2)
但是我可以在标签之间有更多自定义间距,例如前两个标签之间的空间 2 ,第二个和第三个标签之间的空间是 3 ,等等?
这样做可以让我很好地(在情节之外)将标签与我的情节中的线对齐。
答案 0 :(得分:1)
看起来没有简单的方法,因为plt.legend
使用VPacker
来管理图例中的条目:https://github.com/matplotlib/matplotlib/blob/master/lib/matplotlib/legend.py#L713
VPacker
仅支持所有条目的sep
个:
http://matplotlib.org/api/offsetbox_api.html#matplotlib.offsetbox.VPacker
您是否考虑过手动绘制图例?
(例如,绘制带有patches.Rectangle
的白色框和带有plt.text
的文本)
这可能也会使项目与你的情节内容更加容易。
例如,像这样:
import matplotlib.pyplot as plt
from matplotlib import patches
rect = patches.Rectangle((0.7, 0.35), 0.2, 0.3, facecolor='white')
plt.gca().add_patch(rect)
plt.text(0.75, 0.58, 'my')
plt.text(0.75, 0.5, 'custom')
plt.text(0.75, 0.42, 'legend')