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

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

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

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是实现显示图中的负数的功能;
生成的结果图如下:
python函数之xticks实现时间作为横坐标并按指定间隔显示_第1张图片
我们可以看到,横坐标的时间根本看不清楚,不仅影响美观性,还影响可读性,因此加上如下代码:

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

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

你可能感兴趣的:(python函数,python,数据分析,github)