matplotlib中legend位置調整
阿新 • • 發佈:2019-01-01
在畫一些曲線圖 (line charts) 時,常常會出現多條曲線同時畫在一張圖上面,這時候就需要對不同的曲線進行不同的標註,以使讀者能夠清晰地知道每條曲線代表的含義。當你畫很少的幾條曲線時,這時畫圖命令中自動產生的legend能夠基本滿足你的需要,此時,你不需要做什麼;但當你將很多個曲線畫在一張圖上時,自動產生的legend矩形框往往會覆蓋住已經畫出來的曲線,很不美觀,這時你就需要寫專門的程式碼對legend的位置進行精確的控制,而不能再依靠系統幫你自動控制了。
本文所講的就是要解決如何在一張圖上畫多條曲線時,如何控制legend的位置。當你採用Python中的matplotlib包畫圖時,採用下面的程式碼即可控制legend的位置:
plt.legend(loc='upper center', bbox_to_anchor=(0.6,0.95),ncol=3,fancybox=True,shadow=True)
上面bbox_to_anchor被賦予的二元組中,第一個數值用於控制legend的左右移動,值越大越向右邊移動,第二個數值用於控制legend的上下移動,值越大,越向上移動。上述示例程式碼產生的legend樣例如下:
注:matlab中也可以完成legend位置的調整,也可以手工調整。