1. 程式人生 > 程式設計 >Python matplotlib畫圖時圖例說明(legend)放到影象外側詳解

Python matplotlib畫圖時圖例說明(legend)放到影象外側詳解

用python的matplotlib畫圖時,往往需要加圖例說明。如果不設定任何引數,預設是加到影象的內側的最佳位置。

import matplotlib.pyplot as plt
import numpy as np
 
x = np.arange(10)
 
fig = plt.figure()
ax = plt.subplot(111)
 
for i in xrange(5):
 ax.plot(x,i * x,label='$y = %ix$' % i)
 
plt.legend()
 
plt.show()

這樣的結果如圖所示:

Python matplotlib畫圖時圖例說明(legend)放到影象外側詳解

如果需要將該legend移到影象外側,有多種方法,這裡介紹一種。

在plt.legend()函式中加入若干引數:

plt.legend(bbox_to_anchor=(num1,num2),loc=num3,borderaxespad=num4)

bbox_to_anchor(num1,num2)表示legend的位置和影象的位置關係,num1表示水平位置,num2表示垂直位置。num1=0表示legend位於影象的左側垂直線(這裡的其它引數設定:num2=0,num3=3,num4=0)。

Python matplotlib畫圖時圖例說明(legend)放到影象外側詳解

num1=1表示legend位於影象的右側垂直線(其它引數設定:num2=0,num4=0)。

Python matplotlib畫圖時圖例說明(legend)放到影象外側詳解

為了美觀,需要將legend放於影象的外側,而又距離不是太大,一般設num1=1.05。

num2=0表示legend位於影象下側水平線(其它引數設定:num1=1.05,num4=0)。

Python matplotlib畫圖時圖例說明(legend)放到影象外側詳解

num2=1表示legend位於影象上側水平線(其它引數設定:num1=1.05,num4=0)。

Python matplotlib畫圖時圖例說明(legend)放到影象外側詳解

所以,如果希望legend位於影象的右下,需要將num2設為0,位於影象的右上,需要將num2設為1。

由於legend是一個方框,bbox_to_anchor=(num1,num2)相當於表示一個點,那麼legend的哪個位置位於這個點上呢。引數num3就用以表示哪個位置位於該點。

loc引數對應
Location String Location Code
'best' 0
'upper right' 1
'upper left' 2
'lower left' 3
'lower right' 4
'right' 5
'center left' 6
'center right' 7
'lower center' 8
'upper center' 9
'center' 10

所以,當設bbox_to_anchor=(1.05,0),即legend放於影象右下角時,為美觀起見,需要將legend的左下角,即'lower left'放置該點,對應該表的‘Location Code'數字為3,即引數num3置為3或直接設為‘lower left';而當設bbox_to_anchor=(1.05,1),即legend放於影象右上角時,為美觀起見,需要將legend的左上角,即'upper left'放置該點,對應該表的‘Location Code'數字為2,即引數num3置為2或直接設為‘upper left'。

根據參考網址上的解釋,引數num4表示軸和legend之間的填充,以字型大小距離測量,預設值為None,但實際操作中,如果不加該引數,效果是有一定的填充,下面有例圖展示,我這裡設為0,即取消填充,具體看個人選擇。

這是將legend放於影象右下的完整程式碼:

import matplotlib.pyplot as plt
import numpy as np
 
x = np.arange(10)
 
fig = plt.figure()
ax = plt.subplot(111)
 
for i in xrange(5):
 ax.plot(x,label='$y = %ix$' % i)
 
plt.legend(bbox_to_anchor=(1.05,0),loc=3,borderaxespad=0)
 
plt.show()

效果展示:

Python matplotlib畫圖時圖例說明(legend)放到影象外側詳解

這裡legend的‘lower left'置於(1.05,0)的位置。

如果不加入引數num4,那麼效果為:

Python matplotlib畫圖時圖例說明(legend)放到影象外側詳解

legend稍靠上,有一定的填充。

這是將legend放於影象右上的完整程式碼:

import matplotlib.pyplot as plt
import numpy as np
 
x = np.arange(10)
 
fig = plt.figure()
ax = plt.subplot(111)
 
for i in xrange(5):
 ax.plot(x,1),loc=2,borderaxespad=0)
 
plt.show()

效果展示:

Python matplotlib畫圖時圖例說明(legend)放到影象外側詳解

這裡legend的‘upper left'置於(1.05,那麼效果為:

Python matplotlib畫圖時圖例說明(legend)放到影象外側詳解

legend稍靠下。

以上這篇Python matplotlib畫圖時圖例說明(legend)放到影象外側詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。