Matplotlib图例放在图形外部
参考:matplotlib legend outside figure
在Matplotlib中,图例是一个显示关于每个绘图元素的标签,通常放在图形内部。但是有时候,我们希望将图例放在图形的外部,使得图形更清晰。在本文中,我们将介绍如何使用Matplotlib将图例放在图形外部。
创建一个简单的图形并将图例放在图形外部
首先,让我们创建一个简单的散点图,并将图例放在图形外部。
Output:
在上面的示例代码中,我们使用plt.scatter
创建了一个散点图,并使用plt.legend
将图例放在图形的右上角外部(loc='upper right'
指定了位置,bbox_to_anchor=(1.2, 1)
指定了图例的具体位置)。
设置图例的外部边框
有时候,我们希望给图例设置一个外部边框。下面的示例代码演示了如何给图例添加一个外部边框。
Output:
上面的示例代码中,我们在plt.legend
中传入frameon=True
参数来显示图例的边框。
使用ncol参数设置图例的列数
如果图例中包含多个标签,可以使用ncol
参数来设置图例的列数。下面的示例代码演示了如何使用ncol
参数设置图例的列数为2。
Output:
在上面的示例代码中,我们使用ncol=2
参数将图例分成两列。
调整图例的大小
有时候,我们希望调整图例的大小,使得图例更易于阅读。下面的示例代码演示了如何使用fontsize
参数设置图例的字体大小为12。
Output:
在上面的示例代码中,我们在plt.legend
中传入fontsize=12
参数设置图例的字体大小为12。
水平放置图例
有时候,我们希望将图例水平放置在图形的底部。下面的示例代码演示了如何使用mode
参数将图例水平放置在底部。
Output:
在上面的示例代码中,我们在plt.legend
中传入loc='lower center'
参数将图例放在底部居中,bbox_to_anchor=(0.5, -0.2)
指定了图例的位置,mode='expand'
将图例水平放置在底部。
给图例添加阴影
有时候,我们希望给图例添加一些装饰效果,如阴影。下面的示例代码演示了如何给图例添加阴影。
Output:
在上面的示例代码中,我们使用legend.get_frame().set_linewidth(2)
和legend.get_frame().set_edgecolor('black')
给图例添加了边框和阴影效果。
调整图例的间距
有时候,我们希望调整图例的间距,使得图例更美观。下面的示例代码演示了如何使用columnspacing
参数设置图例的列间距为0.8。
Output:
在上面的示例代码中,我们在plt.legend
中传入columnspacing=0.8
参数设置图例的列间距为0.8。
调整图例的边距
有时候,我们希望调整图例的边距,使得图例更美观。下面的示例代码演示了如何使用borderaxespad
参数设置图例距离坐标轴的边距为0.5。
Output:
在上面的示例代码中,我们在plt.legend
中传入borderaxespad=0.5
参数设置图例距离坐标轴的边距为0.5。
自定义图例的形状和大小
有时候,我们希望自定义图例的形状和大小,使得图例更加个性化。下面的示例代码演示了如何使用`handler_map参数设置图例的handler_map。
在上面的示例代码中,我们使用mpatches.Circle
创建一个圆形图例,并通过handler_map
参数设置图例的handler_map
。
在多个子图中放置图例
有时候,我们希望在多个子图中放置一个共同的图例,使得图表更清晰。下面的示例代码演示了如何在多个子图中放置一个共同的图例。
Output:
在上面的示例代码中,我们创建了一个包含4个子图的画布,并在每个子图中放置了不同的散点图。然后我们使用plt.legend
在整个画布中放置一个共同的图例。
将图例放置在子图的外部
有时候,我们希望将图例放置在子图的外部,使得子图更加清晰。下面的示例代码演示了如何在子图的外部放置一个共同的图例。
Output:
在上面的示例代码中,我们在每个子图中使用ax.legend
将图例放置在子图的外部。