matplotlib圖例legend語法及設定的方法
阿新 • • 發佈:2020-07-29
1.圖例legend基礎語法及用法
legend語法引數如下: matplotlib.pyplot.legend(*args,**kwargs)
Keyword | Description |
loc | Location code string,or tuple (see below).圖例所有figure位置 |
prop | the font property字型引數 |
fontsize | the font size (used only if prop is not specified) |
markerscale | the relative size of legend markers vs. original 圖例標記與原始標記的相對大小 |
markerfirst | If True (default),marker is to left of the label. 如果為True,則圖例標記位於圖例標籤的左側 |
numpoints | the number of points in the legend for line 為線條圖圖例條目建立的標記點數 |
scatterpoints | the number of points in the legend for scatter plot 為散點圖圖例條目建立的標記點數 |
scatteryoffsets | a list of yoffsets for scatter symbols in legend 為散點圖圖例條目建立的標記的垂直偏移量 |
frameon | If True,draw the legend on a patch (frame). 控制是否應在圖例周圍繪製框架 |
fancybox | If True,draw the frame with a round fancybox. 控制是否應在構成圖例背景的FancyBboxPatch周圍啟用圓邊 |
shadow | If True,draw a shadow behind legend. 控制是否在圖例後面畫一個陰影 |
framealpha | Transparency of the frame. 控制圖例框架的 Alpha 透明度 |
edgecolor | Frame edgecolor. |
facecolor | Frame facecolor. |
ncol | number of columns 設定圖例分為n列展示 |
borderpad | the fractional whitespace inside the legend border 圖例邊框的內邊距 |
labelspacing | the vertical space between the legend entries 圖例條目之間的垂直間距 |
handlelength | the length of the legend handles 圖例控制代碼的長度 |
handleheight | the height of the legend handles 圖例控制代碼的高度 |
handletextpad | the pad between the legend handle and text 圖例控制代碼和文字之間的間距 |
borderaxespad | the pad between the axes and legend border 軸與圖例邊框之間的距離 |
columnspacing | the spacing between columns 列間距 |
title | the legend title |
bbox_to_anchor | the bbox that the legend will be anchored.指定圖例在軸的位置 |
bbox_transform | the transform for the bbox. transAxes if None. |
(1)設定圖例位置
使用loc引數
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,4) p1,= plt.plot([1,2,3]) p2,= plt.plot([3,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:],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,3],label="Line 1",linestyle='--') line2,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()
到此這篇關於matplotlib圖例legend語法及設定的方法的文章就介紹到這了,更多相關matplotlib legend內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!