1. 程式人生 > >Python 作圖之Matplotlib(二)

Python 作圖之Matplotlib(二)

Legend 

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-3, 3, 50)
y1 = 2*x + 1
y2 = x**2

plt.figure()
#set x limits
plt.xlim((-1, 2))
plt.ylim((-2, 3))

# set new sticks
new_sticks = np.linspace(-1, 2, 5)
plt.xticks(new_sticks)
# set tick labels
plt.yticks([-2, -1.8, -1, 1.22, 3],
           [r'$really\ bad$', r'$bad$', r'$normal$', r'$good$', r'$really\ good$'])

設定兩條線的型別等資訊(藍色實線與紅色虛線).

# set line syles
l1, = plt.plot(x, y1, label='linear line')
l2, = plt.plot(x, y2, color='red', linewidth=1.0, linestyle='--', label='square line')

引數 loc='upper right' 表示圖例將新增在圖中的右上角.

plt.legend(loc='upper right')


調整位置和名稱

如果我們想單獨修改之前的 label 資訊, 給不同型別的線條設定圖例資訊. 我們可以在 

plt.legend 輸入更多引數. 如果以下面這種形式新增 legend, 我們需要確保, 在上面的程式碼 plt.plot(x, y2, label='linear line') 和 plt.plot(x, y1, label='square line') 中有用變數 l1 和 l2 分別儲存起來. 而且需要注意的是 l1, l2,要以逗號結尾, 因為plt.plot() 返回的是一個列表.

plt.legend(handles=[l1, l2], labels=['up', 'down'],  loc='best')


loc’引數有多種,’best’表示自動分配最佳位置,其餘的如下:

 '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,
參考:https://morvanzhou.github.io/tutorials/data-manipulation/plt/2-5-lagend/