在 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中文网其他相关文章!