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