首页 > 其他分享 >【matplotlib基础】--刻度

【matplotlib基础】--刻度

时间:2023-09-05 09:47:25浏览次数:62  
标签:01 -- matplotlib plt 刻度 2022 np ax

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)

image.png
上面的示例中,
设置了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')

image.png

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

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

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

image.png
上面示例中,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")

image.png
由于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")

image.png

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)

image.png
X轴的刻度显示实际的值。
调整为 latex 格式来显示:(调整 plt.xticks() 这个函数)

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

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

3. 总结回顾

与之前介绍的画布子图坐标轴相比,刻度是设置最多也是最复杂的一个容器。
刻度的主要作用是帮助数据可视化更加清晰和易于理解,基于此,本篇主要介绍了:

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

标签:01,--,matplotlib,plt,刻度,2022,np,ax
From: https://www.cnblogs.com/wang_yb/p/17678841.html

相关文章

  • 20230628 java.net.HttpURLConnection
    介绍java.net.HttpURLConnectionpublicabstractclassHttpURLConnectionextendsURLConnectionAPI常量HTTP状态码HTTP_OK:200HTTP_CREATED:201HTTP_ACCEPTED:202HTTP_NOT_AUTHORITATIVE:203HTTP_NO_CONTENT:204HTTP_RESET:205HTTP_PARTIAL:206H......
  • 20230528 java.beans.BeanDescriptor
    介绍java.beans.BeanDescriptorpublicclassBeanDescriptorextendsFeatureDescriptorAPI构造器BeanDescriptor(Class<?>beanClass)BeanDescriptor(Class<?>beanClass,Class<?>customizerClass)publicgetBeanClassgetCustomizerClass......
  • 20230602 反射中的泛型信息
    介绍Java泛型的突出特性之一是在虚拟机中擦除泛型类型,但是擦除的类仍然保留原先泛型的一些微弱记忆。例如,原始Pair类知道它源自于泛型类Pair<T>,尽管无法区分是Pair<String>还是Pair<Integer>为了描述泛型类型声明,java.lang.reflect包中提供了接口Type,包含以下子类型......
  • 牛客——SQL166 每天的日活数及新用户占比
    描述用户行为日志表tb_user_logiduidartical_idin_timeout_timesign_cin110190012021-10-3110:00:002021-10-3110:00:090210290012021-10-3110:00:002021-10-3110:00:090310102021-11-0110:00:002021-11-0110:00:421410290012021......
  • K8S阿里云版本(ACK)
    K8S阿里云版本(ACK)试用体验:点击免费试用:选择“个人版”   ......
  • 第4篇 machine,platform,codec
    参考:韦东山Linux教程(1)machine:单板相关 //结构体:structsnd_soc_card->structsnd_soc_dai_link 1)表明platform是哪个,通过snd_soc_dai_link指定名字,进行匹配 1.指定CPUDAI(IIS) 2.snd_soc_platform_driver(指定DMA) 2)表明codec是哪个,通过s......
  • 布暑中常用的启动命令
    1.首先,我们布暑时应该选择哪个jdk版本,那么先写个这样的文件,使用/ect/profile设置环境变量,示例如下:if[-f~/.bashrc];then.~/.bashrcfiexportJAVA_HOME=/usr/share/jdk1.8.0_14#java安装目录exportPATH=$JAVA_HOME/bin:.....2.然后在目录 /root/sh/下创......
  • Burpsuit专业版安装指导
    Burpsuit专业版安装指导(破解)1、现在并安装Burpsuit专业版burpsuite官网下载链接:https://portswigger.net/burp/releases注意:下载V2022.09之前的版本,否则后面破解失败,我下载的是V2022.8.5下载了专业版的burpsuite安装包后,直接在pc上安装。注意:如果在windows上使用建议直接......
  • 程序员的产品思维
    最近读了三本产品方面的书籍(产品思维、从需求到产品和从点子到产品等),系统性的学习了一下产品思维。学习的目的其实就是为了让自己能更有效的与产品经理、运营等人沟通,挖掘他们真实的诉求。给出最科学最合理、让大家利益都能最大化的解决方案。少一点矛盾,多一点......
  • 界面控件DevExtreme(v23.2)下半年发展路线图
    在这篇文章中,我们将介绍DevExtreme在v23.2中发布的一些主要特性,这些特性既适用于DevExtremeJavaScript(Angular、React、Vue、jQuery),也适用于基于DevExtreme的ASP.NETMVC/Core控件。DevExtreme包含全面的高性能和响应式UI小部件集合,可在传统Web和下一代移动应用程序中使用。......