AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當(dāng)前位置:首頁 > 科技  > 軟件

Matplotlib中的titles(標(biāo)題)、labels(標(biāo)簽)和legends(圖例)

來源: 責(zé)編: 時間:2023-12-12 17:02:51 295觀看
導(dǎo)讀Matplotlib是一個Python中常用的繪圖庫,用于創(chuàng)建各種類型的圖表。在Matplotlib中,你可以使用titles(標(biāo)題)、labels(標(biāo)簽)和legends(圖例)來增強(qiáng)你的圖表。本文討論Python的Matplotlib繪圖庫中可用的不同標(biāo)記選項。Figure, sub

Matplotlib是一個Python中常用的繪圖庫,用于創(chuàng)建各種類型的圖表。在Matplotlib中,你可以使用titles(標(biāo)題)、labels(標(biāo)簽)和legends(圖例)來增強(qiáng)你的圖表。本文討論Python的Matplotlib繪圖庫中可用的不同標(biāo)記選項。BZH28資訊網(wǎng)——每日最新資訊28at.com

BZH28資訊網(wǎng)——每日最新資訊28at.com

Figure, subplots 和axes列表

在Matplotlib中,F(xiàn)igure是整個圖形窗口,它可以包含一個或多個子圖(Axes)。Axes是實際繪圖區(qū)域,而Figure則是包含所有Axes、標(biāo)題、標(biāo)簽等元素的容器。BZH28資訊網(wǎng)——每日最新資訊28at.com

在使用可以使用Matplotlib時可以使用plt.subplots()命令一次創(chuàng)建多個子圖的占位符,輸入?yún)?shù)nrows和ncols定義要返回的行和列的數(shù)量。返回數(shù)組包含ncols=2個元素的nrows=2個列表。每個元素都引用一個子圖。BZH28資訊網(wǎng)——每日最新資訊28at.com

import matplotlib.pyplot as plt  fig, axs = plt.subplots(  nrows=2, ncols=2, figsize=(10, 7), sharex=True, sharey=True )  # Fig = Figure object, # axs = list of axes # axs = [[ax1, ax2],  #       [ax3, ax4]]

axes和labels

axis指的是子圖,通常稱為ax的軸對象中的x軸和y軸的一個組合。我們使用列表推導(dǎo)遍歷所有軸,并使用ax.set_xlabel("whatever")為每個子圖分配xlabel和ylabel。可以通過調(diào)用ax2 = ax.twinx()來創(chuàng)建另一個y軸;ax2.set_ylabel(“Second y-axis”);但這會使繪制圖例等事情變得復(fù)雜,因為現(xiàn)在繪圖配置在同一子圖中被分成兩個容器,所以我們一般都會將一個x軸和y軸放在一個子圖中,也就是我們上面說的一個組合。BZH28資訊網(wǎng)——每日最新資訊28at.com

i = 1 for ax in [item for sublist in axs for item in sublist]:  ax.set_xlabel(f"xlabel {i}")  ax.set_ylabel(f"ylabel {i}")  i+=1

Titles

每個子圖最多可以有三個標(biāo)題Titles 。默認(rèn)情況下,子圖標(biāo)題顯示在子圖的上方。使用loc參數(shù)可以將唯一的標(biāo)題與子圖的左邊緣或右邊緣對齊,也可以向子圖添加其他標(biāo)題。有時將主標(biāo)題左對齊并添加更多信息(如數(shù)據(jù)源)可能會很有用,或者使用不同的字體或較小的字體右對齊。BZH28資訊網(wǎng)——每日最新資訊28at.com

ax.set_title(f"Title {i} left", loc="left", fnotallow=8) ax.set_title(f"Title {i} right", loc="right", fnotallow=10) ax.set_title(f"Title {i} center", loc="center", fnotallow=14)

在Matplotlib中,set_title和set_ylabel等函數(shù)可以將字體、字體大小和字體粗細(xì)作為參數(shù)或作為一個名為fontdict的字典。BZH28資訊網(wǎng)——每日最新資訊28at.com

ax.set_title(f"Title {i} left", loc="left", fnotallow=dict(  size=8,   family="Times New Roman",   weight="bold") )

圖的Title 和label

圖標(biāo)題在Matplotlib中稱為suptitle。默認(rèn)情況下,它是一個標(biāo)題,在最上面的子標(biāo)題中間對齊,字體大小比普通的子標(biāo)題大。BZH28資訊網(wǎng)——每日最新資訊28at.com

與軸標(biāo)簽類似,y軸和x軸也有替代標(biāo)簽。默認(rèn)情況下,Supylabel以居中對齊的方式出現(xiàn)在圖的左側(cè),而supxlabel以居中對齊的方式出現(xiàn)在圖的底部。BZH28資訊網(wǎng)——每日最新資訊28at.com

可以自定義圖形標(biāo)簽和標(biāo)題的位置,方法是使用x和y參數(shù),ha用于水平對齊,va用于垂直對齊。x和y所指向的圖坐標(biāo)是從圖的左下角開始的0到1之間的數(shù)字。suptitle的默認(rèn)值是x=0.5和y=0.98,這使得它位于頂部和中間。BZH28資訊網(wǎng)——每日最新資訊28at.com

fig.suptitle("Suptitle", fnotallow=20) fig.supylabel("Supylabel", fnotallow=16) fig.supxlabel("Supxlabel", fnotallow=16)

子的圖例legends

圖例是子圖中的輔助框,它告訴我們哪些數(shù)據(jù)點屬于哪個邏輯組。當(dāng)在單個子圖中有多條線、多組標(biāo)記等時,它們尤其有用。當(dāng)調(diào)用ax.legend()時,每個沒有以下劃線開頭的標(biāo)簽且包含在軸對象中的藝術(shù)家都會生成一個軸圖例條目。像ax.scatter()和ax.plot()這樣的繪圖函數(shù)將label作為參數(shù),默認(rèn)情況下,這是創(chuàng)建圖例時使用的標(biāo)簽。BZH28資訊網(wǎng)——每日最新資訊28at.com

ax.scatter(  np.random.random(30) * 0.45 + 0.3,  np.random.random(30) * 0.45 + 0.3,  label="label for data",  alpha=0.3, ) ax.legend(title=f"Legend {i} title", fnotallow=8)

如果子圖包含多個軸,例如當(dāng)調(diào)用ax.twinx()時,需要在繪制圖例之前收集對藝術(shù)家的引用并將它們組合起來,以避免在同一子圖中繪制兩個圖例。BZH28資訊網(wǎng)——每日最新資訊28at.com

lines_ax = ax.get_lines()  lines_ax2 = ax2.get_lines()   lines = lines_ax + lines_ax2  labels = [line.get_label() for line in lines]  ax.legend(lines, labels, title=f"Legend {i} title", fnotallow=8)

總結(jié)

通過上面的介紹,我們應(yīng)該對這幾個術(shù)語有了一定了解,那么我們來看看下面的代碼BZH28資訊網(wǎng)——每日最新資訊28at.com

import matplotlib.pyplot as plt import numpy as np  fig, axs = plt.subplots(  nrows=2, ncols=2, figsize=(10, 7),   sharex=True, sharey=True, squeeze=True )  i = 1 for ax in [item for sublist in axs for item in sublist]:  ax.set_xlabel(f"xlabel {i}")  ax.scatter(    np.random.random(30) * 0.45 + 0.3,    np.random.random(30) * 0.45 + 0.3,    label="label for data",    alpha=0.3,  )  ax.legend(title=f"Legend {i} title", fnotallow=8)  ax.set_xlim(0, 1)  ax.set_ylim(0, 1)  ax.set_title(f"Title {i} left", loc="left", fnotallow=8)  ax.set_title(f"Title {i} right", loc="right", fnotallow=10)  ax.set_title(f"Title {i} center", loc="center", fnotallow=14)   ax.tick_params(labelleft=False, labelbottom=False)  ax.set_ylabel(f"ylabel {i}")  i += 1  fig.suptitle("Suptitle", fnotallow=20) fig.supylabel("Supylabel", fnotallow=16) fig.supxlabel("Supxlabel", fnotallow=16)  plt.tight_layout() plt.savefig("fig.png", dpi=200)

這就是繪制最上面圖的代碼,我們再把圖展示一下,這樣可以更加直觀:BZH28資訊網(wǎng)——每日最新資訊28at.com

BZH28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-43329-0.htmlMatplotlib中的titles(標(biāo)題)、labels(標(biāo)簽)和legends(圖例)

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 聊一聊雪花算法與分布式ID生成

下一篇: Java中不建議使用foreach的六大場景

標(biāo)簽:
  • 熱門焦點
Top