# 網格線分級 一般情況下,我們設置網格線都不會太在意密度和精度的問題,導致下圖這種看的有些眼花,橫坐標在比較密集的時候很容易看竄行。 ![image-20230615191231845](https://img2023.cnblogs.com/blog/2862884/202306/2862884 ...
網格線分級
一般情況下,我們設置網格線都不會太在意密度和精度的問題,導致下圖這種看的有些眼花,橫坐標在比較密集的時候很容易看竄行。
所以如果可以把精度設置一下,或者設置一下主級和副級網格線,就會條理很多
MultiLocator
首先引入模塊
from matplotlib.ticker import MultipleLocator
在 Matplotlib 庫中,MultipleLocator
是用於設置刻度線間隔的類。與xticks
和yticks
方法相比,MultipleLocator
更加靈活,可以用於自定義刻度線的位置、格式和間隔。
通常情況下,我們會使用 Matplotlib 自帶的刻度線定位器(Locator)來設置軸上的刻度線位置。例如:
import matplotlib.pyplot as plt
from matplotlib.ticker import AutoLocator
fig, ax = plt.subplots()
ax.plot([1, 2, 3], [4, 5, 6])
ax.xaxis.set_major_locator(AutoLocator())
plt.show()
上述代碼中,AutoLocator()
是一個自動刻度線定位器,它會自動計算並設置 x 軸刻度線的位置和間隔。
但是,有的時候我們想要手動控制刻度線的位置或者間隔。這個時候就可以使用MultipleLocator
來設置刻度線的間隔。例如:
import matplotlib.pyplot as plt
from matplotlib.ticker import MultipleLocator
fig, ax = plt.subplots()
ax.plot([1, 2, 3], [4, 5, 6])
# 設置 x 軸刻度線間隔
ax.xaxis.set_major_locator(MultipleLocator(1))
ax.xaxis.set_minor_locator(MultipleLocator(0.5))
plt.show()
1和0.5分別代表著1是major網格線,所以會有刻度顯示,而0.5只作為minor網格線會有刻度,但不會顯示值。這樣,就能夠手動設置刻度線的位置和間隔。在實際應用中,MultipleLocator
還可以用於設置其他類型的軸(例如 log 坐標軸)的刻度線間隔。
之後我們可以對兩種線進行一些屬性的設置,此時會用到tick_params
函數來設置一些可視化的屬性。
tick_params()
方法中常用的參數解析:-
axis
設置要操作的軸。可以取值 'x'、'y' 或 'both'。
-which
設置要操作的刻度線類型。可以取值 'major'(主要刻度線)、'minor'(次要刻度線)或 'both'。
-direction
設置刻度線和刻度標簽的朝向。可以取值 'in'、'out' 或 'inout'。
-length
設置刻度線的長度。
-width
設置刻度線的寬度。
-color
設置刻度線和刻度標簽的顏色。
-pad
設置刻度標簽和刻度線的間距。
-labelsize
設置刻度標簽的字型大小大小。
-labelrotation
設置刻度標簽的旋轉角度。
-grid_color
設置網格線的顏色。
-grid_alpha
設置網格線的透明度。
-grid_linewidth
設置網格線的寬度。
ax.tick_params(axis="both", which="major", direction="in", width=1, length=5)
ax.tick_params(axis="both", which="minor", direction="in", width=1, length=3)
我對兩個坐標軸的主副刻度線都進行處理,主刻度線為長度5,副刻度線為3
做好之後就行對圖中的網格線進行設置,
Matplotlib 的
grid()
函數可以用於繪製網格線。該函數的常用參數如下:-
b
設置是否顯示網格線。可以取值為 True 或 False。
-which
設置要繪製的網格線類型。可以取值 'major'(主要網格線)、'minor'(次要網格線)或 'both'。
-axis
設置在哪個軸上繪製網格線。可以取值 'x'、'y' 或 'both'。
-color
設置網格線的顏色。
-linestyle
設置網格線的類型。可以取值為 '-'(實線)、'--'(虛線)、':'(點線)或 '-.'(點劃線)。
-linewidth
設置網格線的寬度。
-alpha
設置網格線的透明度。
ax.grid(True, which="major", linestyle="--", color="gray", linewidth=0.75)
ax.grid(True, which="minor", linestyle=":", color="lightgray", linewidth=0.75)
主線用灰色虛線,副線用淺灰色的點線表示
這樣子的話就可以很清楚的區分不同位置對應的坐標,看起來更優美一點
本文來自博客園,作者:ivanlee717,轉載請註明原文鏈接:https://www.cnblogs.com/ivanlee717/p/17483909.html