返回
将图例置于外部:释放图表区域并保持可读性
python
2024-03-11 17:42:51
图表图例:如何放置在外部
序言
当在一个图形中绘制多个图表时,图例(显示每个曲线或系列的名称)有时可能会占用宝贵的绘图空间。特别是当有多个曲线需要绘制时,图例可能会变得非常庞大。本文将介绍如何将图例放置在图表区域外部,从而释放图表区域,同时保持图例的可见性和可读性。
将图例框保持在图表区域外部
要将图例框放在图表区域外部,可以使用 matplotlib
库中 legend
函数的 'Location'
参数。此参数允许你指定图例的位置,可选值包括:
'best'
: 自动选择最佳位置'upper right'
: 右上角'upper left'
: 左上角'lower left'
: 左下角'lower right'
: 右下角'right'
: 右侧'center left'
: 居中靠左'center right'
: 居中靠右'lower center'
: 底部居中'upper center'
: 顶部居中'outside'
: 图表框外部
通常,将图例放置在图表区域外部的最佳位置是 'outside'
。此选项会在图表框外创建一个单独的区域来显示图例,而不会影响图表区域的尺寸或比例。
# 导入必要的库
import matplotlib.pyplot as plt
# 创建一个包含 20 个图表的图形
fig, axes = plt.subplots(2, 10, figsize=(20, 10))
# 为每个图表添加一条曲线
for i in range(20):
axes[i // 10, i % 10].plot(range(10), range(10))
# 将图例放置在图表区域的右侧外部
plt.legend(bbox_to_anchor=(1, 1), loc='outside')
plt.show()
减小图例框内文本的字体大小
默认情况下,图例中的文本使用默认字体大小。如果图例中有大量文本,这可能会使图例难以阅读。要减小图例中文本的字体大小,可以使用 legend
函数的 'FontSize'
参数。此参数允许你设置图例中文本的字体大小,单位为点(pt)。
# 导入必要的库
import matplotlib.pyplot as plt
# 创建一个包含 20 个图表的图形
fig, axes = plt.subplots(2, 10, figsize=(20, 10))
# 为每个图表添加一条曲线
for i in range(20):
axes[i // 10, i % 10].plot(range(10), range(10))
# 将图例放置在图表区域的右侧外部
plt.legend(bbox_to_anchor=(1, 1), loc='outside')
# 设置图例中文本的字体大小
plt.legend(fontsize=8)
plt.show()
结论
通过将图例放置在图表区域外部并减小图例中文本的字体大小,你可以释放图表区域,同时保持图例的可见性和可读性。这对于包含大量曲线的图形特别有用。
常见问题解答
1. 如何自动选择图例的最佳位置?
使用 'best'
作为 'Location'
参数的值。
2. 如何将图例放在图表上方或下方?
使用 'upper center'
或 'lower center'
作为 'Location'
参数的值。
3. 如何更改图例框的颜色或边框样式?
使用 'frameon'
和 'facecolor'
参数。
4. 如何添加标题到图例框?
使用 'title'
参数。
5. 如何创建水平而不是垂直的图例?
使用 'orientation'
参数并将其设置为 'horizontal'
。