網格線分級
一般情況下,我們設定網格線都不會太在意密度和精度的問題,導致下圖這種看的有些眼花,橫坐標在比較密集的時候很容易看竄行,
所以如果可以把精度設定一下,或者設定一下主級和副級網格線,就會條理很多
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
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/555247.html
標籤:其他
上一篇:淺析switch和if(開發中這兩者的優缺點;分析出優缺點在使用就能更確定自己需要使用哪個函式了)
下一篇:返回列表