1. 函数功能
改变刻度、刻度标签、网格线的外观
2.函数语法
plt.tick_params(axis='both',which='major',reset=False,**kwargs)
3. 函数参数与示例
参数 | 含义 |
---|
axis | 作用于哪个轴,取值为: x ; y ; both(默认) |
which | 作用于哪个刻度线,取值为:major(主要刻度线;默认) ; minor(次要刻度线) ; both(主要和次要刻度线) |
reset | 布尔值,更新设置之前是否将刻度重置为默认情况,默认取值False |
direction | 刻度在轴域放置的位置: in(里面);out(外面);inout(里面+外面) |
length | 刻度线的长度 |
width | 刻度线的宽度 |
color | 刻度线的颜色 |
3.1 刻度线属性
默认情况下,刻度线显示在轴域外:
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 2 * np.pi, 200)
y = np.sin(x)
fig = plt.figure('sin', (8, 8), facecolor='snow')
plt.plot(x, y)
plt.minorticks_on()
plt.tick_params(axis='x', which='major', direction='out', length=5,
width=1.5, color='r')
plt.tick_params(axis='x', which='minor', direction='in', length=2.5,
width=0.8, color='k')
plt.xlim(0, 2 * np.pi)
plt.ylim(-1, 1)
plt.show()

3.2 标签属性
参数 | 含义 |
---|
axis | 作用于哪个轴,取值为: x ; y ; both(默认) |
which | 作用于哪个刻度线,取值为:major(主要刻度线;默认) ; minor(次要刻度线) ; both(主要和次要刻度线) |
reset | 布尔值,更新设置之前是否将刻度重置为默认情况,默认取值False |
direction | 刻度在轴域放置的位置: in(里面);out(外面);inout(里面+外面) |
length | 刻度线的长度 |
width | 刻度线的宽度 |
color | 刻度线的颜色 |
pad | 刻度与对应标签的距离 |
labelsize | 刻度标签的字体大小 |
labelcolor | 刻度标签的字体颜色 |
labelrotation | 刻度标签的旋转,取值为浮点数,正值逆时针旋转;负值顺时针旋转 |
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 2 * np.pi, 200)
y = np.sin(x)
fig = plt.figure('sin', (8, 6), facecolor='snow')
plt.plot(x, y)
plt.minorticks_on()
plt.xticks(ticks=np.arange(0, 7, 1.0), labels=np.arange(0, 7, 1.0))
plt.tick_params(axis='x', which='major', direction='out', length=5,
width=1.5, color='r', pad=3, labelsize=10, labelcolor='red')
plt.xlim(0, 2 * np.pi)
plt.ylim(-1, 1)
plt.show()

import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 2 * np.pi, 200)
y = np.sin(x)
fig = plt.figure('sin', (8, 6), facecolor='snow')
plt.plot(x, y)
plt.minorticks_on()
plt.xticks(ticks=np.arange(0, 7, 1.0), labels=np.arange(0, 7, 1.0))
plt.tick_params(axis='x', which='major', direction='out', length=5,
width=1.5, color='r', pad=3, labelsize=10,
labelcolor='red',labelrotation=-8)
plt.xlim(0, 2 * np.pi)
plt.ylim(-1, 1)
plt.show()

3.3 四个边框刻度线设置
参数 | 含义 |
---|
axis | 作用于哪个轴,取值为: x ; y ; both(默认) |
which | 作用于哪个刻度线,取值为:major(主要刻度线;默认) ; minor(次要刻度线) ; both(主要和次要刻度线) |
reset | 布尔值,更新设置之前是否将刻度重置为默认情况,默认取值False |
direction | 刻度在轴域放置的位置: in(里面);out(外面);inout(里面+外面) |
length | 刻度线的长度 |
width | 刻度线的宽度 |
color | 刻度线的颜色 |
pad | 刻度与对应标签的距离 |
labelsize | 刻度标签的字体大小 |
labelcolor | 刻度标签的字体颜色 |
bottom, top, left, right | 布尔值,是否绘制刻度线,默认绘制left和bottom的 |
labelbottom, labeltop, labelleft, labelright | 布尔值,是否绘制刻度标签,默认绘制labelleft和labelbottom的 |
3.4 四个边框刻度标签设置
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 2 * np.pi, 200)
y = np.sin(x)
fig = plt.figure('sin', (8, 6), facecolor='snow')
plt.plot(x, y)
plt.minorticks_on()
plt.xticks(ticks=np.arange(0, 7, 1.0), labels=np.arange(0, 7, 1.0))
plt.tick_params(axis='x', which='major', direction='out', length=5,
width=1.5, color='r', pad=3, labelsize=10,
labelcolor='red',top=True,bottom=False)
plt.xlim(0, 2 * np.pi)
plt.ylim(-1, 1)
plt.show()

2)刻度标签

3.5 网格线属性
参数 | 含义 |
---|
axis | 作用于哪个轴,取值为: x ; y ; both(默认) |
which | 作用于哪个刻度线,取值为:major(主要刻度线;默认) ; minor(次要刻度线) ; both(主要和次要刻度线) |
reset | 布尔值,更新设置之前是否将刻度重置为默认情况,默认取值False |
direction | 刻度在轴域放置的位置: in(里面);out(外面);inout(里面+外面) |
length | 刻度线的长度 |
width | 刻度线的宽度 |
color | 刻度线的颜色 |
pad | 刻度与对应标签的距离 |
labelsize | 刻度标签的字体大小 |
labelcolor | 刻度标签的字体颜色 |
bottom, top, left, right | 布尔值,是否绘制刻度线,默认绘制left和bottom的 |
labelbottom, labeltop, labelleft, labelright | 布尔值,是否绘制刻度标签,默认绘制labelleft和labelbottom的 |
gird_color | 纵向网格线的颜色 |
grid_alpha | 网格线的透明度 |
grid_linewidth | 网格线的线条粗细 |
grid_linestyle | 网格线的线条类型 |
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 2 * np.pi, 200)
y = np.sin(x)
fig = plt.figure('sin', (8, 6), facecolor='snow')
plt.plot(x, y)
plt.minorticks_on()
plt.xticks(ticks=np.arange(0, 7, 1.0), labels=np.arange(0, 7, 1.0))
plt.grid()
plt.tick_params(axis='x', which='major', direction='out', length=5,
width=1.5, color='r', pad=3, labelsize=10,
labelcolor='red',grid_color='y',grid_alpha=0.3,
grid_linewidth=1.5,grid_linestyle=':')
plt.xlim(0, 2 * np.pi)
plt.ylim(-1, 1)
plt.show()

3.6 未知属性: zorder
参数 | 含义 |
---|
axis | 作用于哪个轴,取值为: x ; y ; both(默认) |
which | 作用于哪个刻度线,取值为:major(主要刻度线;默认) ; minor(次要刻度线) ; both(主要和次要刻度线) |
reset | 布尔值,更新设置之前是否将刻度重置为默认情况,默认取值False |
direction | 刻度在轴域放置的位置: in(里面);out(外面);inout(里面+外面) |
length | 刻度线的长度 |
width | 刻度线的宽度 |
color | 刻度线的颜色 |
pad | 刻度与对应标签的距离 |
labelsize | 刻度标签的字体大小 |
labelcolor | 刻度标签的字体颜色 |
bottom, top, left, right | 布尔值,是否绘制刻度线,默认绘制left和bottom的 |
labelbottom, labeltop, labelleft, labelright | 布尔值,是否绘制刻度标签,默认绘制labelleft和labelbottom的 |
gird_color | 纵向网格线的颜色 |
grid_alpha | 网格线的透明度 |
grid_linewidth | 网格线的线条粗细 |
grid_linestyle | 网格线的线条类型 |
zorder | 尚不清楚 |
4. 一点想法
tick_params函数与xticks函数以及设置次要刻度标签的minorticks_on()函数可以设置主要刻度和次要刻度,但是目前学习到的我还无法解决以下问题:
- 这两个函数配合也无法做到同时显示主要刻度标签和次要刻度标签
- 无法对同一图形控制显示x轴次要刻度而不显示y轴次要刻度
利用plt函数可以实现的欢迎在下面指正,非常感谢!
官方文档