Python matplotlib 图例放到图像外侧详解

版权申诉
28 下载量 201 浏览量 更新于2024-09-11 收藏 165KB PDF 举报
"Python matplotlib库提供了丰富的图形绘制功能,其中包括添加图例来解释图表中的不同数据系列。在默认情况下,图例会被放置在图像内部的一个最佳位置。然而,有时我们可能希望将图例移出图像边界,以避免遮挡图表内容。本教程将详细介绍如何使用matplotlib将图例放到图像的外侧。 首先,我们需要导入matplotlib.pyplot模块,并用别名plt进行引用,以及可能需要的numpy库。以下是一个基础的绘图示例: ```python import matplotlib.pyplot as plt import numpy as np x = np.arange(10) fig = plt.figure() ax = plt.subplot(111) for i in np.arange(5): ax.plot(x, i * x, label=f'$y={i}x$') plt.legend() plt.show() ``` 在上述代码中,我们创建了一个简单的图表,包含5条曲线,每条曲线都有一个对应的标签。调用`plt.legend()`会自动添加图例,但图例默认位于图像的内部。 要将图例移到图像外侧,可以利用`plt.legend()`函数的几个关键参数: 1. `bbox_to_anchor=(num1, num2)`:这个参数控制图例与图像边界的相对位置。`num1`表示水平位置,`num2`表示垂直位置。值在0和1之间,0表示靠近图像的左/下边缘,1表示靠近右/上边缘。例如,`bbox_to_anchor=(1.05, 0)`将图例放在图像的右下方。 2. `loc=num3`:这个参数定义图例相对于`bbox_to_anchor`指定点的具体位置。matplotlib提供了多种预定义的位置代码,例如`loc=3`代表'best',即自动选择一个最佳位置。 3. `borderaxespad=num4`:这个参数控制图例与图像边界之间的空白距离。通常,我们希望保持一定的间隔,因此可以设置一个非零的数值。 以下是一个例子,将图例移动到图像的右上角: ```python plt.legend(bbox_to_anchor=(1.05, 1), loc=3, borderaxespad=0.5) ``` 在这个设置中,`bbox_to_anchor=(1.05, 1)`将图例定位在图像的右上方,`loc=3`意味着图例的右上角会位于指定的点,而`borderaxespad=0.5`则确保图例与图像之间有一定的距离。 请注意,`loc`参数的完整列表包括以下选项(LocationString和Location Code): - 'best': 0 - 'upper right': 1 - 'upper left': 2 - 'lower left': 3 - 'lower right': 4 - 'right': 5 - 'center left': 6 - 'center right': 7 - 'lower center': 8 - 'upper center': 9 - 'center': 10 根据具体需求,可以通过调整这些参数的组合来精确控制图例的位置。这使得我们可以自定义图例的外观,使其既美观又不影响图表的可读性。"