Matplotlib 中如何将图例放置在绘图之外
图例可以通过使用 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_anchor
和 loc
的 4 元组参数定义。
plt.legend(bbox_to_anchor=(x0, y0, width, height), loc=)
width
和 height
是图例框的宽度和高度,而 (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()
plt.tight_layout()
使子图合适的跟图形匹配。
如果未调用 tight_layout()
,则图例框将被裁剪。
bbox_extra_artists
和 bbox_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
。
相关文章
Matplotlib 中的内联魔术函数
发布时间:2023/05/02 浏览次数:59 分类:Python
-
在这篇文章中,我们学习了什么是魔法函数,然后我们在讨论内联函数之后看到了 Matplotlib 中可用的不同魔法函数。
Matplotlib 标记填充
发布时间:2023/05/02 浏览次数:86 分类:Python
-
在本说明中,我们了解了如何自定义标记样式和创建填充标记,我们还了解了如何在 Matplotlib 中创建具有不同线条样式的绘图。
Matplotlib 等值线图
发布时间:2023/05/02 浏览次数:75 分类:Python
-
在此篇文章中,我们将了解什么是等高线图以及如何借助 Matplotlib 中的 contour() 方法获取等高线图。
在 Matplotlib 中创建趋势线
发布时间:2023/05/02 浏览次数:92 分类:Python
-
在这篇文章中,我们看了关于趋势线的简短演示,并了解了如何在 matplotlib 中的图形上创建线性趋势线。
在 Matplotlib 中设置条形图的宽度参数
发布时间:2023/05/02 浏览次数:173 分类:Python
-
在这个关于 Matplotlib 的演示中,我们讨论了条形图,并查看了 Matplotlib 中 bar 函数的宽度参数。
Matplotlib 中错误 No Handles With Labels Found to Put in Legend
发布时间:2023/05/02 浏览次数:208 分类:Python
-
本文演示了我们如何在尝试使用 Matplotlib 绘制某些内容时解决警告(No Handles With Labels Found to Put in Legend)。
Matplotlib 动画
发布时间:2023/05/01 浏览次数:84 分类:Python
-
本文介绍了使用 Matplotlib 包在 Python 中创建动画图表的步骤。 要了解所涉及的步骤,您应该对 Matplotlib 库有最低限度的了解。
Matplotlib stackplot 栈图
发布时间:2023/05/01 浏览次数:191 分类:Python
-
Matplotlib 是一个 Python 库,提供了广泛的绘图功能。 matplotlib 最有用的功能之一是 stackplot 函数。这篇文章重点解释了使用 matplotlib 包在 Python 中创建 %matplotlib notebook 图形所涉及的不同步骤。
Matplotlib 视网膜
发布时间:2023/05/01 浏览次数:52 分类:Python
-
在这篇文章中,我们将解释所有关于 Matplotlib 视网膜的信息。 Matplotlib 的主要功能之一是它支持视网膜显示器,这是一种具有高像素密度的屏幕。 这使得 Matplotlib 图形看起来非常锐利和清晰