网格线分级
一般情况下,我们设置网格线都不会太在意密度和精度的问题,导致下图这种看的有些眼花,横坐标在比较密集的时候很容易看窜行。
所以如果可以把精度设置一下,或者设置一下主级和副级网格线,就会条理很多
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)
主线用灰色虚线,副线用浅灰色的点线表示
这样子的话就可以很清楚的区分不同位置对应的坐标,看起来更优美一点
标签:matplot,major,层级,MultipleLocator,网格线,刻度,设置,ax From: https://www.cnblogs.com/ivanlee717/p/17483909.html