千家信息网

Matplotlib如何控制坐标轴刻度间距与标签

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇文章将为大家详细讲解有关Matplotlib如何控制坐标轴刻度间距与标签,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。控制刻度间距目前为止,我们让Matplot
千家信息网最后更新 2026年11月04日Matplotlib如何控制坐标轴刻度间距与标签

这篇文章将为大家详细讲解有关Matplotlib如何控制坐标轴刻度间距与标签,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

控制刻度间距

目前为止,我们让Matplotlib自动处理刻度在坐标轴上的位置,但有时我们需要覆盖默认的坐标轴刻度配置,以便更加快速估计图形中点的坐标。

import numpy as npimport matplotlib.pyplot as pltimport matplotlib.ticker as tickerx = np.linspace(-20, 20, 1024)y = np.sinc(x)ax = plt.axes()ax.xaxis.set_major_locator(ticker.MultipleLocator(5))ax.xaxis.set_minor_locator(ticker.MultipleLocator(1))plt.plot(x, y, c = 'm')plt.show()

以上代码,强制水平刻度每隔5个单位步长呈现一次。此外,我们还添加了副刻度,副刻度的间隔为1个单位步长,步骤说明如下:

  1. 首先实例化一个Axes对象--用于管理图形中的坐标轴:ax=plot.Axes()。

  2. 然后使用Locator实例设置x轴(ax.xaxis)或y轴(ax.yaxis)的主刻度和副刻度。

也为副刻度添加辅助网格:

import numpy as npimport matplotlib.pyplot as pltimport matplotlib.ticker as tickerx = np.linspace(-20, 20, 1024)y = np.sinc(x)ax = plt.axes()ax.xaxis.set_major_locator(ticker.MultipleLocator(5))ax.xaxis.set_minor_locator(ticker.MultipleLocator(1))plt.grid(True, which='both', ls='dashed')plt.plot(x, y, c = 'm')plt.show()

Tips:我们已经知道,可以使用plt.grid()添加辅助网格,但此函数还有一个可选参数which,它具有三个可选值:"minor"、"major"和"both",分别用于仅显示副刻度、仅显示主刻度、主副刻度同时显示。

控制刻度标签

是时候介绍刻度标签的设置了,刻度标签是图形空间中的坐标,虽然数字刻度标签对于大多说场景来说是足够的,但是却并不总是能够满足需求。例如,我们需要显示100个公司的营收情况,这时候我们就需要横坐标刻度标签为公司名,而非数字;同样对于时间序列,我们希望横坐标刻度标签为日期...。考虑到此类需求,我们需要使用Matplotlib为此提供了的API控制刻度标签。
可以按以下步骤为任何Matplotlib图形设置刻度标签:

import numpy as npimport matplotlib.ticker as tickerimport matplotlib.pyplot as pltname_list = ('Apple', 'Orange', 'Banana', 'Pear', 'Mango')value_list = np.random.randint(0, 99, size = len(name_list))pos_list = np.arange(len(name_list))ax = plt.axes()ax.xaxis.set_major_locator(ticker.FixedLocator((pos_list)))ax.xaxis.set_major_formatter(ticker.FixedFormatter((name_list)))plt.bar(pos_list, value_list, color = 'c', align = 'center')plt.show()

Tips:我们首先使用ticker.Locator实例来生成刻度的位置,然后使用ticker.Formatter实例将为刻度生成标签。FixedFormatter从字符串列表中获取标签,然后用Formatter实例设置坐标轴。同时,我们还使用了FixedLocator来确保每个标签中心都正好与刻度中间对齐。

更简单的设置方式

虽然使用上述方法可以控制刻度标签,但可以看出此方法过于复杂,如果刻度标签是固定的字符列表,那么可以用以下简单的设置方法:

import numpy as npimport matplotlib.pyplot as pltname_list = ('Apple', 'Orange', 'Banana', 'Pear', 'Mango')value_list = np.random.randint(0, 99, size = len(name_list))pos_list = np.arange(len(name_list))plt.bar(pos_list, value_list, color = 'c', align = 'center')plt.xticks(pos_list, name_list)plt.show()

Tips:使用plt.xticks()函数为一组固定的刻度提供固定标签,此函数接受位置列表和名称列表作为参数值,可以看出,此方法比第一种方法实现起来更简单。

高级刻度标签控制

不仅可以使用固定标签,使用ticker API可以使用函数生成的标签:

import numpy as npimport matplotlib.pyplot as pltimport matplotlib.ticker as tickerdef make_label(value, pos):    return '%0.1f%%' % (100. * value)ax = plt.axes()ax.xaxis.set_major_formatter(ticker.FuncFormatter(make_label))x = np.linspace(0, 1, 256)plt.plot(x, np.exp(-10 * x), c ='c')plt.plot(x, np.exp(-5 * x), c= 'c', ls = '--')plt.show()

在此示例中,刻度标签是由自定义函数make_label生成的。此函数以刻度的坐标作为输入,并返回一个字符串作为坐标标签,这比给出固定的字符串列表更灵活。为了使用自定义函数,需要使用FuncFormatter实例--一个以函数为参数的格式化实例。

这种将生成标签的实际任务指派给其他函数的方法称为委托(delegation)模式,这是一种漂亮的编程技术。比方说,我们要将每个刻度显示为日期,这可以使用标准的Python时间和日期函数完成:

import numpy as npimport datetimeimport matplotlib.pyplot as pltimport matplotlib.ticker as tickerstart_date = datetime.datetime(1998, 1, 1)def make_label(value, pos):    time = start_date + datetime.timedelta(days = 365 * value)    return time.strftime('%b %y')ax = plt.axes()ax.xaxis.set_major_formatter(ticker.FuncFormatter(make_label))x = np.linspace(0, 1, 256)plt.plot(x, np.exp(-10 * x), c ='c')plt.plot(x, np.exp(-5 * x), c= 'c', ls = '--')labels = ax.get_xticklabels()plt.setp(labels, rotation = 30.)plt.show()

Tips:可以利用ax.get_xticklabels()获取刻度标签实例,然后对标签进行旋转,以避免长标签之间重叠,旋转使用plt.setp()函数,其接受刻度标签实例和旋转角度作为参数值。

关于"Matplotlib如何控制坐标轴刻度间距与标签"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

刻度 标签 函数 坐标 实例 控制 坐标轴 生成 参数 图形 字符 方法 间距 位置 字符串 日期 篇文章 单位 同时 数字 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 耶加雪菲 上海挚品互联网科技有限公司 互联网是不是新科技 美国互联网科技巨头监管 互联网公司 科技公司 兼蜜互联网科技 佩信高科技互联网 云创客互联网科技公司 厦门比较好的科技互联网公司 苏州铭阳互联网科技有限公司 互联网科技和法律行业 城市宝互联网科技有限公司 互联网科技包装股份有限公司上市 广州有谷有贝互联网科技有限公司 南京一网一红互联网科技有限公司 普陀区互联网教育科技管理办法 科技信息时代互联网发展 悟空问答互联网科技 宁波允成互联网科技有限公司 互联网高科技绘画 互联网是不是新科技 互联网科技的发展 奇酷互联网络科技公司 互联网科技股有哪些 互联网科技热点资讯 互联网校园科技培训 武汉健翔互联网络科技有限公司 互联网科技革命什么开始 智帮互联网科技公司最近动向 互联网科技的前景
0