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

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

Susan Sarandon
Susan Sarandon原创
2024-11-03 20:17:29178浏览

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

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

在 Matplotlib 中,并排创建多个子图可以实现不同数据集或方面的可视化单个图中的单个数据集。然而,当这些子图具有相似的图例时,显示多个图例可能是不必要的并且视觉上混乱。幸运的是,Matplotlib 提供了一种将图例合并为单个、有凝聚力的表示的解决方案。

解决方案:使用 get_legend_handles_labels()

要为多个子图创建单个图例,请使用最后一个轴上的 get_legend_handles_labels() 函数。此函数从 label= 参数收集必要的信息,允许您手动创建合并的图例。

<code class="python">handles, labels = ax.get_legend_handles_labels()
fig.legend(handles, labels, loc='upper center')</code>

这里:

  • ax 表示子图网格中的最后一个轴。
  • handles 是代表图例条目的句柄(线、标记等)列表。
  • labels 是图例条目的对应标签列表。
  • loc指定图例在图中的位置(例如,绘图上方的“上中心”)。

如果您使用 pyplot 接口而不是 Axes 接口,请使用以下代码:

<code class="python">handles, labels = plt.gca().get_legend_handles_labels()</code>

其他注意事项

  • 要从各个子图中删除图例,请参阅“删除 matplotlib 图形上的图例”以获取指导。
  • 要合并 Twiny 图例,请参阅“带有 twinx() 的辅助轴:如何添加到图例”以获取更多信息。

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

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