當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python matplotlib Figure.legend用法及代碼示例


本文簡要介紹 python 語言中 matplotlib.figure.Figure.legend 的用法。

用法

legend(*args, **kwargs)

在圖形上放置一個圖例。

調用簽名:

legend()
legend(handles, labels)
legend(handles=handles)
legend(labels)

調用簽名對應於以下使用此方法的不同方式:

1.自動檢測圖例中要顯示的元素

當您不傳遞任何額外參數時,將自動確定要添加到圖例的元素。

在這種情況下,標簽取自藝術家。您可以在創建藝術家時指定它們,也可以通過調用藝術家的 set_label() 方法來指定它們:

ax.plot([1, 2, 3], label='Inline label')
fig.legend()

或者:

line, = ax.plot([1, 2, 3])
line.set_label('Label via method')
fig.legend()

通過定義以下劃線開頭的標簽,可以從自動圖例元素選擇中排除特定行。這是所有藝術家的默認設置,因此在不帶任何參數且不手動設置標簽的情況下調用 Figure.legend 將導致不繪製圖例。

2. 明確列出圖例中的藝術家和標簽

為了完全控製哪些藝術家有一個圖例條目,可以傳遞一個可迭代的圖例藝術家,然後分別傳遞一個可迭代的圖例標簽:

fig.legend([line1, line2, line3], ['label1', 'label2', 'label3'])

3. 明確列出圖例中的藝術家

這類似於 2,但標簽取自藝術家的標簽屬性。例子:

line1, = ax1.plot([1, 2, 3], label='label1')
line2, = ax2.plot([1, 2, 3], label='label2')
fig.legend(handles=[line1, line2])

4. 標記現有的情節元素

灰心

不鼓勵使用此調用簽名,因為繪圖元素和標簽之間的關係僅由它們的順序隱含並且很容易混淆。

要為所有軸上的所有藝術家製作圖例,請使用可迭代的字符串調用此函數,每個圖例項一個。例如:

fig, (ax1, ax2) = plt.subplots(1, 2)
ax1.plot([1, 3, 5], color='blue')
ax2.plot([2, 4, 6], color='red')
fig.legend(['the blues', 'the reds'])
參數
handles Artist 列表,可選

要添加到圖例中的藝術家(線條、補丁)列表。如果您需要完全控製圖例中顯示的內容並且上述自動機製還不夠,請將此與 labels 一起使用。

在這種情況下,手柄和標簽的長度應該相同。如果不是,則將它們截斷為較小的長度。

labels str 列表,可選

在藝術家旁邊顯示的標簽列表。如果您需要完全控製圖例中顯示的內容並且上述自動機製還不夠,請將此與 handles 一起使用。

返回
Legend
其他參數
loc str 或一對浮點數,默認值:'upper right'

傳說的位置。

字符串 'upper left''upper right''lower left''lower right' 將圖例放置在圖的相應角處。

字符串 'upper center''lower center''center left''center right' 將圖例放置在圖窗相應邊的中心。

字符串 'center' 將圖例置於圖的中心。

該位置也可以是一個 2 元組,給出圖例左下角在圖形坐標中的坐標(在這種情況下 bbox_to_anchor 將被忽略)。

為了向後兼容,'center right'(但沒有其他位置)也可以拚寫為 'right' ,並且每個 "string" 位置也可以以數值形式給出:

位置字符串

位置代碼

'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

如果圖窗使用約束布局管理器,則 loc 關鍵字參數的字符串代碼可以使用前綴 'outside' 獲得更好的布局行為。拐角處存在歧義,因此“右上外側”將為布局中其餘軸上方的圖例留出空間,而“右上外側”將為布局的右側留出空間。除了上麵列出的 loc 的值之外,我們還有“外側右上”、“外側右下”、“外側左上”和“外側左下”。有關更多詳細信息,請參閱圖例指南。

bbox_to_anchor BboxBase 、2 元組或 4 元組的浮點數

用於與 loc 一起定位圖例的框。默認為 axes.bbox (如果作為 Axes.legend 的方法調用)或 figure.bbox (如果 Figure.legend )。此參數允許任意放置圖例。

Bbox 坐標在 bbox_transform 給出的坐標係中解釋,默認變換 Axes 或圖形坐標,取決於調用哪個 legend

如果給出 4 元組或 BboxBase ,則它指定放置圖例的 bbox (x, y, width, height)。要將圖例放置在軸(或圖形)右下象限的最佳位置:

loc='best', bbox_to_anchor=(0.5, 0., 0.5, 0.5)

2 元組 (x, y) 將由 loc 指定的圖例的角放置在 x、y 處。例如,要將圖例的右上角放在軸(或圖形)的中心,可以使用以下關鍵字:

loc='upper right', bbox_to_anchor=(0.5, 0.5)
ncols 整數,默認值:1

圖例的列數。

為了向後兼容,還支持拚寫 ncol,但不鼓勵這樣做。如果兩者都給出,則 ncols 優先。

prop 無或 FontProperties 或字典

圖例的字體屬性。如果 None(默認),將使用當前的 matplotlib.rcParams

fontsize int 或 {'xx-small'、'x-small'、'small', 'medium', 'large'、'x-large'、'xx-large'}

圖例的字體大小。如果該值為數字,則大小將是絕對字體大小(以磅為單位)。字符串值是相對於當前默認字體大小的。僅當未指定 prop 時才使用此參數。

labelcolor str 或列表,默認:rcParams["legend.labelcolor"](默認:'None')

圖例中文本的顏色。一個有效的顏色字符串(例如,'red'),或者一個顏色字符串列表。也可以使用'linecolor', 'markerfacecolor'(或'mfc')或'markeredgecolor'(或'mec')使標簽顏色與線條或標記的顏色相匹配。

Labelcolor 可以使用 rcParams["legend.labelcolor"] 全局設置(默認值:'None')。如果沒有,請使用 rcParams["text.color"](默認值:'black')。

numpoints int,默認值:rcParams["legend.numpoints"](默認值:1)

Line2D (行)創建圖例條目時圖例中的標記點數。

scatterpoints int,默認值:rcParams["legend.scatterpoints"](默認值:1)

PathCollection (散點圖)創建圖例條目時圖例中的標記點數。

scatteryoffsets 可迭代的浮點數,默認值:[0.375, 0.5, 0.3125]

為散點圖圖例條目創建的標記的垂直偏移量(相對於字體大小)。 0.0 位於圖例文本的底部,1.0 位於頂部。要在同一高度繪製所有標記,請設置為 [0.5]

markerscale 浮點數,默認:rcParams["legend.markerscale"](默認:1.0)

圖例標記與最初繪製的標記相比的相對大小。

markerfirst 布爾值,默認值:真

如果 True ,則圖例標記放置在圖例標簽的左側。如果 False ,則圖例標記放置在圖例標簽的右側。

reverse 布爾值,默認值:假

如果 True ,圖例標簽將以與輸入相反的順序顯示。如果是 False ,則圖例標簽的顯示順序與輸入的順序相同。

3.7 版中的新函數。

frameon 布爾值,默認值:rcParams["legend.frameon"](默認值:True)

圖例是否應繪製在補丁(框架)上。

fancybox 布爾值,默認值:rcParams["legend.fancybox"](默認值:True)

是否應在構成圖例背景的 FancyBboxPatch 周圍啟用圓邊。

shadow None、bool 或 dict,默認值:rcParams["legend.shadow"] (默認值:False )

是否在圖例後麵繪製陰影。可以使用 Patch 關鍵字配置陰影。目前不支持通過rcParams["legend.shadow"](默認:False)進行自定義。

framealpha 浮點數,默認:rcParams["legend.framealpha"](默認:0.8)

圖例背景的 alpha 透明度。如果 shadow 已激活且 framealphaNone ,則忽略默認值。

facecolor "inherit" 或顏色,默認:rcParams["legend.facecolor"](默認:'inherit')

圖例的背景顏色。如果 "inherit" ,請使用 rcParams["axes.facecolor"] (默認值:'white' )。

edgecolor "inherit" 或顏色,默認:rcParams["legend.edgecolor"](默認:'0.8')

圖例的背景補丁邊顏色。如果 "inherit" ,請使用 rcParams["axes.edgecolor"] (默認值:'black' )。

mode {"expand",無}

如果 mode 設置為 "expand",則圖例將水平擴展以填充軸區域(或 bbox_to_anchor,如果定義了圖例的大小)。

bbox_transform 無或 Transform

邊界框的變換 (bbox_to_anchor)。對於 None(默認)的值,將使用軸的 transAxes 變換。

title str 或 None

傳說的標題。默認為無標題 (None)。

title_fontproperties 無或 FontProperties 或字典

圖例標題的字體屬性。如果 None (默認),如果存在 title_fontsize 參數將被使用;如果 title_fontsize 也為 None,則將使用當前的 rcParams["legend.title_fontsize"](默認值:None)。

title_fontsize int 或 {'xx-small'、'x-small'、'small', 'medium', 'large'、'x-large'、'xx-large'},默認:rcParams["legend.title_fontsize"](默認:None)

圖例標題的字體大小。注意:這不能與 title_fontproperties 結合使用。如果要在其他字體屬性旁邊設置字體大小,請使用 title_fontproperties 中的 size 參數。

alignment {'center', 'left', 'right'},默認:'center'

圖例標題和條目框的對齊方式。這些條目作為一個塊對齊,以便標記始終對齊。

borderpad 浮點數,默認:rcParams["legend.borderpad"](默認:0.4)

圖例邊框內的小數空格,以font-size 為單位。

labelspacing 浮點數,默認:rcParams["legend.labelspacing"](默認:0.5)

圖例條目之間的垂直間距,以font-size 為單位。

handlelength 浮點數,默認:rcParams["legend.handlelength"](默認:2.0)

圖例句柄的長度,以font-size 為單位。

handleheight 浮點數,默認:rcParams["legend.handleheight"](默認:0.7)

圖例手柄的高度,以font-size 為單位。

handletextpad 浮點數,默認:rcParams["legend.handletextpad"](默認:0.8)

圖例句柄和文本之間的填充,以font-size 為單位。

borderaxespad 浮點數,默認:rcParams["legend.borderaxespad"](默認:0.5)

軸和圖例邊框之間的填充,以font-size 為單位。

columnspacing 浮點數,默認:rcParams["legend.columnspacing"](默認:2.0)

列之間的間距,以font-size 為單位。

handler_map dict 或 None

自定義字典將實例或類型映射到圖例處理程序。此 handler_map 更新在 matplotlib.legend.Legend.get_legend_handler_map 中找到的默認處理程序映射。

draggable 布爾值,默認值:假

圖例是否可以用鼠標拖動。

注意

此函數不支持某些藝術家。有關詳細信息,請參閱圖例指南。

相關用法


注:本文由純淨天空篩選整理自skytowner.com大神的英文原創作品 matplotlib.figure.Figure.legend。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。