python --生成时间序列,作为横轴的标签。时间跨越2008-2022年,生成每年的6-10月的第一天作为时间序列
创始人
2024-06-01 13:14:43
0

python 生成制定的时间序列作为绘图时x轴的标签

问题需求

  • 在绘图时,需要对于x轴的标签进行专门的设置,整体时间跨越2008年-2022年,将每年的6-10月的第一天生成一条时间序列,绘制成图。

解决思路

对于时间序列的生成,使用datetime和pandas这两个包:

  • datetime中文介绍
  • pandas date_range 官方介绍

具体思路如下:

  • 1、使用datetime模块创建起始年份和结束年份。
  • 2、然后,使用pandas的date_range函数生成从每年的6月1日到10月1日的时间序列。
  • 3、接着,我们筛选出每年的6-10月1日,并将时间序列格式化为字符串存储在标签列表中。
  • 4、最后,我们使用matplotlib的xticks函数将标签列表作为x轴标签,并使用rotation参数将标签旋转90度以避免重叠

代码实现

import pandas as pd
import datetime# 创建起始年份和结束年份
start_year = 2008
end_year = 2022# 创建每年6-10月1日的时间序列
dates = pd.date_range(start=f'{start_year}-06-01', end=f'{end_year}-10-01', freq='MS')# 筛选出每年的6-10月1日
filtered_dates = [date for date in dates if date.month in [6, 7, 8, 9, 10]]# 将时间序列格式化为字符串并存储在标签列表中
labels = [d.strftime('%Y-%m-%d') for d in filtered_dates]# 绘制图形并使用标签作为x轴
import matplotlib.pyplot as pltx = range(len(labels))
y = [i**2 for i in x]plt.plot(x, y)
plt.xticks(x, labels, rotation=90)plt.show()

结果展示

在这里插入图片描述- 间隔太密了,可以做适当修改

plt.xticks(x[::10], labels[::10], rotation=90)

在这里插入图片描述

  					欢迎评论或者加我交流,分享更简单的绘制方法~

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
修复 爱普生 EPSON L4... L4151 L4153 L4156 L4158 L4163 L4165 L4166 L4168 L4...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...