python函数之xticks实现时间作为横坐标并按指定间隔显示

在绘制时间序列数据的图表时,遇到横坐标过于密集导致不美观且难以阅读的问题。通过设置plt.xticks()函数,每隔四个时间点显示一个横坐标,并将其旋转45度,有效改善了图表的清晰度和可读性,使得图表更加美观。此外,还介绍了如何在图表中添加网格线以增强视觉效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近博主在绘制时间序列相关数据的序列图的时候,遇到了一个问题,就是数据量太大,将时间作为横坐标之后,横坐标太过密集,影响美观,因此要改进一下绘制的代码

首先定义一个长度与绘制的数据个数相同的存放时间字符串的列表。

time = ['2015/6/26',
'2015/8/1',
'2015/9/6',
'2015/10/12',
'2015/11/17',
'2015/12/23',
'2016/1/28',
'2016/3/4',
'2016/4/9',
'2016/5/15',
'2016/6/20',
'2016/7/26',
'2016/8/31',
'2016/10/6',
'2016/11/11',
'2016/12/17',
'2017/1/22',
'2017/2/27',
'2017/4/4',
'2017/5/10',
'2017/6/15',
'2017/7/21',
'2017/8/26',
'2017/10/1',
'2017/11/6',
'2017/12/12',
'2018/1/17',
'2018/2/22',
'2018/3/30',
'2018/5/5',
'2018/6/10',
'2018/7/16',
'2018/8/21',
'2018/9/26',
'2018/11/1',
'2018/12/7',
'2019/1/12',
'2019/2/17',
'2019/3/25',
'2019/4/30',
'2019/6/5',
'2019/7/11',
'2019/8/16',
'2019/9/21',
'2019/10/27',
'2019/12/2',
'2020/1/7',
'2020/2/12',
'2020/3/19',
'2020/4/24',
'2020/5/30',
'2020/7/5',
'2020/8/10',
'2020/9/15',
]

然后就调用plot函数进行绘图,首先需要导入相关库

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['KaiTi']
plt.rcParams['axes.unicode_minus'] = False
plt.plot(time,data11,'o-b',label='猴子数量')
plt.plot(time,data00,'o-r',label='老虎数据')

其中,plt.rcParams['font.sans-serif'] = ['KaiTi']是实现将图中的字体设置为中文楷体的功能;plt.rcParams['axes.unicode_minus'] = False是实现显示图中的负数的功能;
生成的结果图如下:
在这里插入图片描述
我们可以看到,横坐标的时间根本看不清楚,不仅影响美观性,还影响可读性,因此加上如下代码:

plt.xticks(range(1,len(time),4),rotation=45)

该代码中的range(1,len(time),4)是向函数传入一个列表,表示重新设置的横坐标,应该如何按照传入列表的规格绘制:从第一个数开始,一共显示原始横坐标长度len(time)个数,显示间隔为4,即每隔四个数显示一次横坐标;而rotation=关键字是实现将横坐标字体旋转一定角度的功能。
接下来运行一下看一下结果:
在这里插入图片描述
可以看到,现在的图就好看极了!若您觉得还是缺了点什么的话,就加上网格线,具体实现请看后续文章!

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十八与她

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值