1.圖例legend基礎(chǔ)語(yǔ)法及用法
legend語(yǔ)法參數(shù)如下: matplotlib.pyplot.legend(*args, **kwargs)
Keyword | Description | loc | Location code string, or tuple (see below).圖例所有figure位置 | prop | the font property字體參數(shù) | fontsize | the font size (used only if prop is not specified) | markerscale | the relative size of legend markers vs. original 圖例標(biāo)記與原始標(biāo)記的相對(duì)大小 | markerfirst | If True (default), marker is to left of the label. 如果為True,則圖例標(biāo)記位于圖例標(biāo)簽的左側(cè) | numpoints | the number of points in the legend for line 為線條圖圖例條目創(chuàng)建的標(biāo)記點(diǎn)數(shù) | scatterpoints | the number of points in the legend for scatter plot 為散點(diǎn)圖圖例條目創(chuàng)建的標(biāo)記點(diǎn)數(shù) | scatteryoffsets | a list of yoffsets for scatter symbols in legend 為散點(diǎn)圖圖例條目創(chuàng)建的標(biāo)記的垂直偏移量 | frameon | If True, draw the legend on a patch (frame). 控制是否應(yīng)在圖例周圍繪制框架 | fancybox | If True, draw the frame with a round fancybox. 控制是否應(yīng)在構(gòu)成圖例背景的FancyBboxPatch周圍啟用圓邊 | shadow | If True, draw a shadow behind legend. 控制是否在圖例后面畫(huà)一個(gè)陰影 | framealpha | Transparency of the frame. 控制圖例框架的 Alpha 透明度 | edgecolor | Frame edgecolor. | facecolor | Frame facecolor. | ncol | number of columns 設(shè)置圖例分為n列展示 | borderpad | the fractional whitespace inside the legend border 圖例邊框的內(nèi)邊距 | labelspacing | the vertical space between the legend entries 圖例條目之間的垂直間距 | handlelength | the length of the legend handles 圖例句柄的長(zhǎng)度 | 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)設(shè)置圖例位置
使用loc參數(shù)
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)設(shè)置圖例字體
#設(shè)置字體大小
fontsize : int or float or {'xx-small’, 'x-small’, 'small’, 'medium’, 'large’, 'x-large’, 'xx-large’}
(3)設(shè)置圖例邊框及背景
plt.legend(loc='best',frameon=False) #去掉圖例邊框
plt.legend(loc='best',edgecolor='blue') #設(shè)置圖例邊框顏色
plt.legend(loc='best',facecolor='blue') #設(shè)置圖例背景顏色,若無(wú)邊框,參數(shù)無(wú)效
(4)設(shè)置圖例標(biāo)題
plt.legend(loc='best',title='figure 1 legend') #去掉圖例邊框
2.legend面向?qū)ο竺?/h2>
(1)獲取并設(shè)置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)設(shè)置圖例 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') #設(shè)置圖例legend背景為紅色 frame = legend.get_frame() frame.set_alpha(1) frame.set_facecolor('none') #設(shè)置圖例legend背景透明
(3)移除圖例 ax1.legend_.remove() ##移除子圖ax1中的圖例 ax2.legend_.remove() ##移除子圖ax2中的圖例 ax3.legend_.remove() ##移除子圖ax3中的圖例
3.案例:設(shè)置圖例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) -
# 為第一個(gè)線條創(chuàng)建圖例 -
first_legend = plt.legend(handles=[line1], loc=1) -
# 手動(dòng)將圖例添加到當(dāng)前軸域 -
ax = plt.gca().add_artist(first_legend) -
# 為第二個(gè)線條創(chuàng)建另一個(gè)圖例 -
plt.legend(handles=[line2], loc=4) -
plt.show()
|