如何在Matplotlib中将图例置于情节之外

2022-02-21 00:00:00 python matplotlib legend

问题描述

我有一系列的20个情节(不是子情节)要在一个图形中制作。我想让传奇走出框框。同时,我不想改变轴,因为图形的尺寸变小了。请为我解答以下问题:

  1. 我想将图例框保留在绘图区之外。(我希望图例位于绘图区的右侧)。
  2. 是否一定要减小图例框内文本的字体大小,以便图例框的大小变小。

解决方案

  • 您可以通过指定FontPropertiesset_size来缩小图例文本。
  • 资源:
    • Legend guide
    • matplotlib.legend
    • matplotlib.pyplot.legend
    • matplotlib.font_manager
      • set_size(self, size)
      • 有效字体大小为xx-小、x-小、小、中、大、x-大、xx-大、大、小、无
    • Real Python: Python Plotting With Matplotlib (Guide)
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties

fontP = FontProperties()
fontP.set_size('xx-small')

p1, = plt.plot([1, 2, 3], label='Line 1')
p2, = plt.plot([3, 2, 1], label='Line 2')
plt.legend(handles=[p1, p2], title='title', bbox_to_anchor=(1.05, 1), loc='upper left', prop=fontP)

  • 如Mateen Ulhaq所述,fontsize='xx-small'也有效,无需导入FontProperties
plt.legend(handles=[p1, p2], title='title', bbox_to_anchor=(1.05, 1), loc='upper left', fontsize='xx-small')

相关文章