Matplotlib 中如何为所有子图创建一个图例
Matplotlib figure
类中的 legend
方法,用于将 legend
放置在图形级别而不是 subplot
级别。如果所有子图中线条的图案和标签都相同,则用起来会特别方便。
在 Matplotlib 中使用 figure.legend
方法为所有子图制作单个图例
import matplotlib.pyplot as plt
fig = plt.figure()
axes = fig.subplots(nrows=2, ncols=2)
for ax in fig.axes:
ax.plot([0, 10], [0, 10], label='linear')
lines, labels = fig.axes[-1].get_legend_handles_labels()
fig.legend(lines, labels, loc = 'upper center')
plt.show()
lines, labels = fig.axes[-1].get_legend_handles_labels()
因为我们假定所有子图具有相同的线条和标签,因此,最后一个 Axes
的句柄和标签可以用于整个图形。
当 Matplotlib 中的线柄和线不同时,使用 figure.legend
方法为所有子图制作单个图例
如果子图之间的线型和标签不同,但是所有子图都需要一个图例,则需要从所有子图中获取所有的线柄和标签。
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 501)
fig = plt.figure()
axes = fig.subplots(nrows=2, ncols=2)
axes[0, 0].plot(x,
np.sin(x),
color = 'k',
label="sin(x)")
axes[0, 1].plot(x,
np.cos(x),
color = 'b',
label="cos(x)")
axes[1, 0].plot(x,
np.sin(x) + np.cos(x),
color = 'r',
label="sin(x)+cos(x)")
axes[1, 1].plot(x,
np.sin(x) - np.cos(x),
color = 'm',
label="sin(x)-cos(x)")
lines = []
labels = []
for ax in fig.axes:
axLine, axLabel = ax.get_legend_handles_labels()
lines.extend(axLine)
labels.extend(axLabel)
fig.legend(lines, labels,
loc = 'upper right')
plt.show()
for ax in fig.axes:
axLine, axLabel = ax.get_legend_handles_labels()
lines.extend(axLine)
labels.extend(axLabel)
万一单个子图中存在更多的行和标签,所有的线条句柄和标签都将通过列表 extend
方法添加到 lines
和 labels
列表中。
相关文章
Django 中的 Slug
发布时间:2023/05/04 浏览次数:173 分类:Python
-
本篇文章旨在定义一个 slug 以及我们如何使用 slug 字段在 Python 中使用 Django 获得独特的帖子。
在 Django 中按降序过滤查询集中的项目
发布时间:2023/05/04 浏览次数:157 分类:Python
-
在这个讲解中,学习如何借助 Django 中的 order_by() 方法按降序过滤出查询集中的项目。
Django ALLOWED_HOSTS 介绍
发布时间:2023/05/04 浏览次数:181 分类:Python
-
本文展示了如何创建您的 Django 网站,为公开发布做好准备,如何设置 ALLOWED_HOSTS 以及如何在使用 Django 进行 Web 部署期间修复预期的主要问题。
Django 中的 Select_related 方法
发布时间:2023/05/04 浏览次数:129 分类:Python
-
本文介绍了什么是查询集,如何处理这些查询以及我们如何利用 select_related() 方法来过滤 Django 中相关模型的查询。
使用 Post 请求将数据发送到 Django 服务器
发布时间:2023/05/04 浏览次数:159 分类:Python
-
在这篇关于Django的讲解中,我们简要介绍了post和get请求以及如何在Django中用post实现CSRF token。
Django 返回 JSON
发布时间:2023/05/04 浏览次数:106 分类:Python
-
在与我们的讨论中,我们简要介绍了 JSON 格式,并讨论了如何借助 Django 中的 JsonResponse 类将数据返回为 JSON 格式。
在 Django 中创建对象
发布时间:2023/05/04 浏览次数:59 分类:Python
-
本文的目的是解释什么是模型以及如何使用 create() 方法创建对象,并了解如何在 Django 中使用 save() 方法。
在 Django 中为多项选择创建字段
发布时间:2023/05/04 浏览次数:75 分类:Python
-
在本文中,我们将着眼于为多项选择创建一个字段,并向您展示如何允许用户在 Django 中进行多项选择。