python - matplotlib.legend()函數用法解析


1.圖例legend基礎語法及用法

legend語法參數如下: matplotlib.pyplot.legend(*args, **kwargs)

 

 

 

 

 

 

 

(1)設置圖例位置

使用loc參數

plt.legend(loc='lower left')

0: ‘best'

1: ‘upper right'

2: ‘upper left'

3: ‘lower left'

4: ‘lower right'

5: ‘right'

6: ‘center left'

7: ‘center right'

8: ‘lower center'

9: ‘upper center'

10: ‘center'

 

(2)設置圖例字體

#設置字體大小

fontsize : int or float or {‘xx-small’, ‘x-small’, ‘small’, ‘medium’, ‘large’, ‘x-large’, ‘xx-large’}

 

(3)設置圖例邊框及背景

plt.legend(loc='best',frameon=False) #去掉圖例邊框

plt.legend(loc='best',edgecolor='blue') #設置圖例邊框顏色

plt.legend(loc='best',facecolor='blue') #設置圖例背景顏色,若無邊框,參數無效

 

(4)設置圖例標題

plt.legend(loc='best',title='figure 1 legend') #去掉圖例邊框

2.legend面向對象命令
(1)獲取並設置legend圖例
plt.legend(loc=0, numpoints=1)
leg = plt.gca().get_legend() #或leg=ax.get_legend()
ltext = leg.get_texts()
plt.setp(ltext, fontsize=12,fontweight='bold')

(2)設置圖例
legend = ax.legend((rectsTest1, rectsTest2, rectsTest3), ('test1', 'test2', 'test3'))
legend = ax.legend(loc='upper center', shadow=True, fontsize='x-large')
legend.get_frame().set_facecolor('red') #設置圖例legend背景為紅色
frame = legend.get_frame()
frame.set_alpha(1)
frame.set_facecolor('none') #設置圖例legend背景透明

(3)移除圖例
ax1.legend_.remove() ##移除子圖ax1中的圖例
ax2.legend_.remove() ##移除子圖ax2中的圖例
ax3.legend_.remove() ##移除子圖ax3中的圖例

3.案例:設置圖例legend到圖形邊界外

#主要是bbox_to_anchor的使用

box = ax1.get_position()

ax1.set_position([box.x0, box.y0, box.width , box.height* 0.8])

ax1.legend(loc='center', bbox_to_anchor=(0.5, 1.2),ncol=3)

 

 

4.案例:顯示多圖例legend

import matplotlib.pyplot as plt

import numpy as np

x = np.random.uniform(-1, 1, 4)

y = np.random.uniform(-1, 1, 4)

p1, = plt.plot([1,2,3])

p2, = plt.plot([3,2,1])

l1 = plt.legend([p2, p1], ["line 2", "line 1"], loc='upper left')


p3 = plt.scatter(x[0:2], y[0:2], marker = 'D', color='r')

p4 = plt.scatter(x[2:], y[2:], marker = 'D', color='g')

# This removes l1 from the axes.

plt.legend([p3, p4], ['label', 'label1'], loc='lower right', scatterpoints=1)

# Add l1 as a separate artist to the axes

plt.gca().add_artist(l1)

 

 

 

 


import matplotlib.pyplot as plt

line1, = plt.plot([1,2,3], label="Line 1", linestyle='--')

line2, = plt.plot([3,2,1], label="Line 2", linewidth=4)

# 為第一個線條創建圖例

first_legend = plt.legend(handles=[line1], loc=1)

# 手動將圖例添加到當前軸域

ax = plt.gca().add_artist(first_legend)

# 為第二個線條創建另一個圖例

plt.legend(handles=[line2], loc=4)

plt.show()

 

 


————————————————
版權聲明:本文為CSDN博主「雞啄米的時光機」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_33221533/article/details/81431264


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM