迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

Matplotlib 中如何将图例放置在绘图之外

作者:迹忆客 最近更新:2023/03/17 浏览次数:

图例可以通过使用 bbox_to_anchor 放置在 Matplotlib 中的绘图之外。bbox 表示容纳图例的边界框 - bounding box

plt.legend(bbox_to_anchor=(1.05, 1))

它将图例放置在坐标轴上的位置 (1.05, 1) 处。(0, 0) 是轴坐标的左下角,而 (1.0, 1.0) 是轴坐标的右上角。

图例边界框的实际大小和位置由 plt.legend 中的 bbox_to_anchorloc 的 4 元组参数定义。

plt.legend(bbox_to_anchor=(x0, y0, width, height), loc=)

widthheight 是图例框的宽度和高度,而 (x0, y0) 是边界框 loc 的坐标。

loc 的值可以是具有以下关系的数字或字符串,

loc 编号 loc 字符串
0 best
1 upper right
2 upper left
3 lower left
4 lower right
5 right
6 center left
7 center right
8 lower center
9 upper center
10 center
plt.legend(bbox_to_anchor=(1.05, 1.0, 0.3, 0.2), loc='upper left')

上面的代码意味着图例框位于坐标为 (1.05, 1.0) 的坐标轴上,宽度为 0.3,高度为 0.2,其中 (1.05, 1.0) 是上坐标图例边框的左上角。

bbox_to_anchor 示例

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)

plt.plot(x, np.sin(x), label="sin(x)")
plt.plot(x, np.cos(x), label="cos(x)")

plt.legend(bbox_to_anchor=(1.05, 1.0), loc='upper left')
plt.tight_layout()
plt.show()

Matplotlib 图例 bbox_to_anchor 示例

plt.tight_layout() 使子图合适的跟图形匹配。

如果未调用 tight_layout(),则图例框将被裁剪。

Matplotlib Legend bbox_to_anchor 裁剪

bbox_extra_artistsbbox_inches 以防止图例框被裁剪

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)

plt.plot(x, np.sin(x), label="sin(x)")
plt.plot(x, np.cos(x), label="cos(x)")

lg = plt.legend(bbox_to_anchor=(1.05, 1.0), loc='upper left')

plt.savefig('example.png', 
            dpi=300, 
            format='png', 
            bbox_extra_artists=(lg,), 
            bbox_inches='tight')

bbox_extra_artists 指定 Artist 的列表,该列表在计算紧凑 bbox 时会考虑在内。

如果将 bbox_inches 设置为 tight,它将计算出图中的紧凑型 bbox

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

如何在 Matplotlib Pyplot 中显示网格

发布时间:2024/02/04 浏览次数:142 分类:Python

本文演示了如何在 Python Matplotlib 中在一个图上画一个网格。使用 grid()函数来绘制网格,并解释了如何改变网格颜色和线条类型。

如何在 Matplotlib 中画一条任意线

发布时间:2024/02/04 浏览次数:166 分类:Python

本教程讲解了我们如何在 Matplotlib 中使用 matplotlib.pyplot.plot()、matplotlib.pyplot.vlines()、matplotlib.pyplot.hlines()方法和 matplotlib.collection.LineCollection 绘制任意线条。

Matplotlib 中的叠加条形图

发布时间:2024/02/04 浏览次数:182 分类:Python

本教程展示了如何使用 plt.bar()方法将某些数据集的条形图堆叠在另一个数据集上。我们在 Matplotlib 中使用 matplotlib.pyplot.bar()方法生成条形图。

设置 Matplotlib 网格间隔

发布时间:2024/02/04 浏览次数:250 分类:Python

本教程将介绍我们如何在 Matplotlib 绘图中设置网格间距,并对主要网格和次要网格应用不同的样式。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便