如何为多个 Matplotlib 子图创建单个图例?

Mary-Kate Olsen
发布: 2024-11-03 07:56:29
原创
1019 人浏览过

How to Create a Single Legend for Multiple Matplotlib Subplots?

为多个 Matplotlib 子图创建单个图例

使用 Matplotlib 跨多个子图绘制类似信息时,创建单个图例可能会很有帮助适用于所有子图的图例。这通过为每个子图中的线条提供一致的参考来简化数据的解释。

要实现这一点,请在最后一个轴上使用 get_legend_handles_labels() 函数或调用 plt.gca().get_legend_handles_labels( )如果使用 pyplot 接口。这些函数从 label= 参数中收集必要的图例句柄和标签。

要创建单个图例,请调用Fig.legend(handles, labels, loc='upper center'),其中Fig 是包含subplots 和 loc 指定图例的位置。

例如,如果您有一个具有相同线条的 3x3 子图网格,以下代码将在所有子图上方添加一个图例:

import matplotlib.pyplot as plt
import numpy as np

# Generate data for the subplots
data = np.random.rand(9)

# Create the subplots
fig, axes = plt.subplots(3, 3)

# Plot the data on each subplot
for ax, datum in zip(axes.flatten(), data):
    ax.plot(datum)

# Get the legend handles and labels
handles, labels = plt.gca().get_legend_handles_labels()

# Create the single legend
plt.legend(handles, labels, loc='upper center')

plt.show()
登录后复制

以上是如何为多个 Matplotlib 子图创建单个图例?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板