Matplotlib繪圖基礎(chǔ)之刻度詳解
Matplotlib中刻度是用于在繪圖中表示數(shù)據(jù)大小的工具。
刻度是坐標(biāo)軸上的數(shù)字或標(biāo)簽,用于指示數(shù)據(jù)的大小或值,
通常以整數(shù)或小數(shù)表示,具體取決于坐標(biāo)軸的類型和限制。
1. 主次刻度
默認(rèn)的繪制時,坐標(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個主要刻度之間有10個次要刻度。
設(shè)置了Y軸的主要刻度間隔50,次要刻度間隔10,也就是每2個主要刻度之間有5個次要刻度。
次要刻度就是上面圖中主要刻度之間稍短點的線。
2. 刻度樣式
刻度的樣式非常靈活,常見的有以下幾種設(shè)置。
2.1. 隱藏刻度
隱藏刻度,只保留圖形,這在做某些示意圖的時候可能會用到。
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ù)圖形的大小,我們設(shè)置了刻度的不同密度。
2.3. 顏色,大小,旋轉(zhuǎn)
為了突出某些刻度值,有時候會需要修改那些刻度值的顏色和大小。
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軸的刻度是日期,因為太長,所以會擠在一起,顯示不清。
這時可以調(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格式,可以顯示一些特殊的字符,比如圓周率π。
直接顯示時:
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軸的刻度顯示實際的值。
調(diào)整為 latex 格式來顯示:(調(diào)整 plt.xticks() 這個函數(shù))
plt.xticks(labels=[
"0", "$\pi/6$", "$\pi/4$", "$\pi/3$", "$\pi/2$"
], ticks=x)
X軸的刻度中顯示圓周率π,更易于閱讀和理解。
3. 總結(jié)回顧
與之前介紹的畫布,子圖和坐標(biāo)軸相比,刻度是設(shè)置最多也是最復(fù)雜的一個容器。
刻度的主要作用是幫助數(shù)據(jù)可視化更加清晰和易于理解,基于此,本篇主要介紹了:
- 主次刻度
- 刻度樣式,包括是否顯示刻度,刻度的密度,顏色,大小,角度以及
latex公式的支持。
到此這篇關(guān)于Matplotlib繪圖基礎(chǔ)之刻度詳解的文章就介紹到這了,更多相關(guān)Matplotlib刻度內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

