Matplotlib繪圖基礎(chǔ)之刻度詳解
Matplotlib
中刻度是用于在繪圖中表示數(shù)據(jù)大小的工具。
刻度是坐標(biāo)軸上的數(shù)字或標(biāo)簽,用于指示數(shù)據(jù)的大小或值,
通常以整數(shù)或小數(shù)表示,具體取決于坐標(biāo)軸的類型和限制。
1. 主次刻度
默認(rèn)的繪制時(shí),坐標(biāo)軸只有默認(rèn)的主要刻度,如下所示:
from matplotlib.ticker import MultipleLocator x = np.array(range(0, 100)) y = np.random.randint(100, 200, 100) fig = plt.figure() ax = fig.add_axes([0.1, 0.1, 0.8, 0.8]) #X軸的主要和次要刻度 ax.xaxis.set_major_locator(MultipleLocator(20)) ax.xaxis.set_minor_locator(MultipleLocator(2)) #Y軸的主要和次要刻度 ax.yaxis.set_major_locator(MultipleLocator(50)) ax.yaxis.set_minor_locator(MultipleLocator(10)) ax.plot(x, y)
上面的示例中,
設(shè)置了X軸的主要刻度間隔20,次要刻度間隔2,也就是每2個(gè)主要刻度之間有10個(gè)次要刻度。
設(shè)置了Y軸的主要刻度間隔50,次要刻度間隔10,也就是每2個(gè)主要刻度之間有5個(gè)次要刻度。
次要刻度就是上面圖中主要刻度之間稍短點(diǎn)的線。
2. 刻度樣式
刻度的樣式非常靈活,常見的有以下幾種設(shè)置。
2.1. 隱藏刻度
隱藏刻度,只保留圖形,這在做某些示意圖的時(shí)候可能會(huì)用到。
x = np.array(range(0, 100)) y = np.random.randint(100, 200, 100) fig = plt.figure() ax = fig.add_axes([0.1, 0.1, 0.8, 0.8]) #隱藏刻度 ax.xaxis.set_major_locator(plt.NullLocator()) ax.yaxis.set_major_locator(plt.NullLocator()) ax.plot(x, y, color='g')
2.2. 密度
密度是指刻度的間隔,如果圖比較小,可以設(shè)置間隔大一些,反之則設(shè)置小一些。
from matplotlib.ticker import MultipleLocator x = np.array(range(0, 100)) y = np.random.randint(100, 200, 100) rows, cols = 2, 2 grid = plt.GridSpec(rows, cols) ax = plt.subplot(grid[0, 0]) ax.plot(x, y) ax.xaxis.set_major_locator(MultipleLocator(20)) ax.yaxis.set_major_locator(MultipleLocator(50)) ax = plt.subplot(grid[1, :]) ax.plot(x, y) ax.xaxis.set_major_locator(MultipleLocator(10)) ax.yaxis.set_major_locator(MultipleLocator(20))
上例中,根據(jù)圖形的大小,我們?cè)O(shè)置了刻度的不同密度。
2.3. 顏色,大小,旋轉(zhuǎn)
為了突出某些刻度值,有時(shí)候會(huì)需要修改那些刻度值的顏色和大小。
x = np.array(range(0, 100)) y = np.random.randint(100, 200, 100) fig = plt.figure() ax = fig.add_axes([0.1, 0.1, 0.8, 0.8]) ax.xaxis.set_major_locator(MultipleLocator(10)) obj = ax.get_xticklabels()[2] obj.set_size(20) obj.set_color("red") ax.plot(x, y, color='g')
上面示例中,X軸刻度10
被放大并且改成了紅色。
刻度的旋轉(zhuǎn)一般用在刻度內(nèi)容比較長的情況,比如下面的示例:
x = np.array( [ "2022-01-01", "2022-02-01", "2022-03-01", "2022-04-01", "2022-05-01", "2022-06-01", "2022-07-01", "2022-08-01", "2022-09-01", "2022-10-01", ] ) y = np.random.randint(100, 200, 10) fig = plt.figure() ax = fig.add_axes([0.1, 0.1, 0.8, 0.8]) ax.plot(x, y, color="g")
由于X軸的刻度是日期,因?yàn)樘L,所以會(huì)擠在一起,顯示不清。
這時(shí)可以調(diào)整X軸刻度的角度,避免重合在一起。
x = np.array( [ "2022-01-01", "2022-02-01", "2022-03-01", "2022-04-01", "2022-05-01", "2022-06-01", "2022-07-01", "2022-08-01", "2022-09-01", "2022-10-01", ] ) y = np.random.randint(100, 200, 10) fig = plt.figure() ax = fig.add_axes([0.1, 0.1, 0.8, 0.8]) plt.xticks(rotation=45) # 旋轉(zhuǎn)45度 ax.plot(x, y, color="g")
2.4. latex格式
Matplotlib
的刻度還支持latex
格式,可以顯示一些特殊的字符,比如圓周率π。
直接顯示時(shí):
x = np.array([0, np.pi / 6, np.pi / 4, np.pi/3, np.pi / 2]) x = np.round(x, 2) y = np.sin(x) fig = plt.figure() ax = fig.add_axes([0.1, 0.1, 0.8, 0.8]) plt.xticks(labels=x, ticks=x) ax.plot(x, y)
X軸的刻度顯示實(shí)際的值。
調(diào)整為 latex 格式來顯示:(調(diào)整 plt.xticks()
這個(gè)函數(shù))
plt.xticks(labels=[ "0", "$\pi/6$", "$\pi/4$", "$\pi/3$", "$\pi/2$" ], ticks=x)
X軸的刻度中顯示圓周率π,更易于閱讀和理解。
3. 總結(jié)回顧
與之前介紹的畫布,子圖和坐標(biāo)軸相比,刻度是設(shè)置最多也是最復(fù)雜的一個(gè)容器。
刻度的主要作用是幫助數(shù)據(jù)可視化更加清晰和易于理解,基于此,本篇主要介紹了:
- 主次刻度
- 刻度樣式,包括是否顯示刻度,刻度的密度,顏色,大小,角度以及
latex
公式的支持。
到此這篇關(guān)于Matplotlib繪圖基礎(chǔ)之刻度詳解的文章就介紹到這了,更多相關(guān)Matplotlib刻度內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
舉例詳解Python中threading模塊的幾個(gè)常用方法
這篇文章主要介紹了舉例詳解Python中threading模塊的幾個(gè)常用方法,threading模塊用來創(chuàng)建和操作線程,是Python學(xué)習(xí)當(dāng)中的重要知識(shí),需要的朋友可以參考下2015-06-06