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