首頁 >後端開發 >Python教學 >如何在 Matplotlib 中為多個子圖建立統一圖例?

如何在 Matplotlib 中為多個子圖建立統一圖例?

Susan Sarandon
Susan Sarandon原創
2024-11-04 02:29:30222瀏覽

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