Matplotlib绘图基础之刻度详解

 更新时间:2023年07月31日 17:05:28   作者:databook  
Matplotlib中刻度是用于在绘图中表示数据大小的工具,通常以整数或小数表示,具体取决于坐标轴的类型和限制,下面就为大家介绍一下Matplotlib中刻度是具体设置与使用吧

Matplotlib刻度是用于在绘图中表示数据大小的工具。

刻度是坐标轴上的数字或标签,用于指示数据的大小或值,

通常以整数或小数表示,具体取决于坐标轴的类型和限制。

1. 主次刻度

默认的绘制时,坐标轴只有默认的主要刻度,如下所示:

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)

上面的示例中,

设置了X轴的主要刻度间隔20,次要刻度间隔2,也就是每2个主要刻度之间有10个次要刻度

设置了Y轴的主要刻度间隔50,次要刻度间隔10,也就是每2个主要刻度之间有5个次要刻度

次要刻度就是上面图中主要刻度之间稍短点的线。

2. 刻度样式

刻度的样式非常灵活,常见的有以下几种设置。

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. 密度

密度是指刻度的间隔,如果图比较小,可以设置间隔大一些,反之则设置小一些。

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))

上例中,根据图形的大小,我们设置了刻度的不同密度

2.3. 颜色,大小,旋转

为了突出某些刻度值,有时候会需要修改那些刻度值的颜色和大小。

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放大并且改成了红色

刻度的旋转一般用在刻度内容比较长的情况,比如下面的示例:

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轴的刻度是日期,因为太长,所以会挤在一起,显示不清。

这时可以调整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) # 旋转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轴的刻度显示实际的值。

调整为 latex 格式来显示:(调整 plt.xticks() 这个函数)

plt.xticks(labels=[
    "0", "$\pi/6$", "$\pi/4$", "$\pi/3$", "$\pi/2$"
], ticks=x)

X轴的刻度中显示圆周率π,更易于阅读和理解。

3. 总结回顾

与之前介绍的画布子图坐标轴相比,刻度是设置最多也是最复杂的一个容器。

刻度的主要作用是帮助数据可视化更加清晰和易于理解,基于此,本篇主要介绍了:

  • 主次刻度
  • 刻度样式,包括是否显示刻度,刻度的密度,颜色,大小,角度以及latex公式的支持。

到此这篇关于Matplotlib绘图基础之刻度详解的文章就介绍到这了,更多相关Matplotlib刻度内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python实现json对值进行模糊搜索的示例详解

    Python实现json对值进行模糊搜索的示例详解

    我经常使用json进行存储配置,于是常常遇到这样的问题:如果想要对某个数组里的值进行模糊搜索,同时输出相关的其他数组相同位置的的值该如何实现呢?本文就来和大家详细聊聊
    2023-01-01
  • python写的ARP攻击代码实例

    python写的ARP攻击代码实例

    这篇文章主要介绍了python写的ARP攻击代码实例,需要的朋友可以参考下
    2014-06-06
  • Python实现提取文章摘要的方法

    Python实现提取文章摘要的方法

    这篇文章主要介绍了Python实现提取文章摘要的方法,实例分析了Python提取文章摘要的原理与实现技巧,需要的朋友可以参考下
    2015-04-04
  • python3爬虫获取html内容及各属性值的方法

    python3爬虫获取html内容及各属性值的方法

    今天小编就为大家分享一篇python3爬虫获取html内容及各属性值的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • Python openpyxl库处理Excel文件高级应用技巧实例

    Python openpyxl库处理Excel文件高级应用技巧实例

    openpyxl是一个用于处理Excel文件的Python库,它提供了丰富的功能,使得用户能够轻松地读取、写入和操作Excel文件,而不需要依赖于Microsoft Excel软件,作为一个开源项目,openpyxl在Python生态系统中得到了广泛的应用,成为处理Excel数据的首选工具之一
    2024-01-01
  • 如何基于线程池提升request模块效率

    如何基于线程池提升request模块效率

    这篇文章主要介绍了如何基于线程池提升request模块效率,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • 如何利用pandas将Excel转为html格式

    如何利用pandas将Excel转为html格式

    工作中经常会遇到Excel转为html格式这种需求,下面这篇文章主要给大家介绍了关于如何利用pandas将Excel转为html格式的相关资料,主要利用的是pd.to_html,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2021-08-08
  • 详解Python如何获取列表(List)的中位数

    详解Python如何获取列表(List)的中位数

    本文通过图文及实例代码介绍了怎样利用python获取列表的中位数,文章介绍的很详细,有需要的小伙伴们可以参考学习。
    2016-08-08
  • 七个生态系统核心库[python自学收藏]

    七个生态系统核心库[python自学收藏]

    无论你是想快速入手Python,还是想成为数据分析大神或者机器学习大佬,亦或者对Python代码进行优化,本文的python库都能为你提供一些帮助
    2021-08-08
  • Python基于yaml文件配置logging日志过程解析

    Python基于yaml文件配置logging日志过程解析

    这篇文章主要介绍了Python基于yaml文件配置logging日志过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06

最新评论