首页  >  文章  >  后端开发  >  如何在 Matplotlib 中为多个子图创建统一图例?

如何在 Matplotlib 中为多个子图创建统一图例?

Susan Sarandon
Susan Sarandon原创
2024-11-04 02:29:30161浏览

How to Create a Unified Legend for Multiple Subplots in Matplotlib?

在 Matplotlib 中为多个子图创建统一图例

在 Matplotlib 中,在跨多个子图绘制数据时,通常需要为所有图显示单个图例。当子图共享相似的线条样式、颜色或标签时,这尤其有用。通过合并图例,它有助于简化可视化并减少混乱。

为了实现这一点,Matplotlib 提供了一个名为 get_legend_handles_labels() 的便捷函数。该函数可以在网格内的最后一个轴上调用,它从绘图时使用的 label= 参数收集所有必要的图例信息。然后,收集到的手柄和标签可用于为整个图创建单个图例。

例如,如果您有九个子图排列在 3x3 网格中,则可以使用以下命令从最后一个子图中获取图例元素以下代码:

handles, labels = ax.get_legend_handles_labels()

其中 ax 表示网格中的最后一个子图轴。收集手柄和标签后,可以使用Fig.legend()创建图例:

fig.legend(handles, labels, loc='upper center')

在这种情况下,图例将位于图形内的“上部中心”位置。可以自定义 loc= 参数以将图例放置在图中的任何位置。

或者,如果您使用 pyplot 接口而不是 Axes 接口,则可以使用以下代码来检索图例句柄和标签:

handles, labels = plt.gca().get_legend_handles_labels()

其中 plt.gca() 返回当前轴对象。

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

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn