当前位置: 首页 > news >正文

横坐标日期等间隔绘图 python示例代码

有两列数据,一列是日期,另一列是数值。日期是递增的,但是间隔不是均匀的。比如1月1日至2月1日有10组数据,2月1日至3月1日有100组数据,3月1日至4月1日有1000组数据。我想绘折线图,横坐标是日期,纵坐标是第二列数值。但是横坐标需要每月是等间隔。比如1月1日-2月1日和2月1日-3月1日是等间隔的。

import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import pandas as pd
from datetime import datetime, timedelta
import random
import warnings
warnings.simplefilter(action='ignore', category=FutureWarning)
plt.rcParams['font.sans-serif'] = ['SimHei']  # 显示中文
plt.rcParams['axes.unicode_minus'] = False  # 显示负号
font = {'family': 'Times New Roman', 'size': '20', 'color': '0.5', 'weight': 'bold'}# 生成假的日期和数值数据
dates = []
values = []# 1月1日至2月1日有10组数据
start_date = datetime(2022, 1, 1)
end_date = datetime(2022, 2, 1)
current_date = start_date
while current_date < end_date:dates.append(current_date)values.append(random.randint(1, 100))current_date += timedelta(days=3)# 2月1日至3月1日有100组数据
start_date = datetime(2022, 2, 1)
end_date = datetime(2022, 3, 1)
current_date = start_date
while current_date < end_date:dates.append(current_date)values.append(random.randint(1, 100))current_date += timedelta(days=1)# 3月1日至4月1日有1000组数据
start_date = datetime(2022, 3, 1)
end_date = datetime(2022, 4, 1)
current_date = start_date
while current_date < end_date:dates.append(current_date)values.append(random.randint(1, 100))current_date += timedelta(hours=6)# 创建DataFrame
df = pd.DataFrame({'date': dates, 'value': values})# 设置横坐标刻度为月份
fig, ax = plt.subplots(figsize=[12,3])
ax.xaxis.set_major_locator(mdates.MonthLocator())
ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m-%d'))# 绘制折线图
plt.plot(df['date'], df['value'])# 添加标题和标签
plt.title('Line Plot of Values')
plt.xlabel('Date')
plt.ylabel('Value')# 显示图形
plt.show()

在这里插入图片描述

http://www.lryc.cn/news/205559.html

相关文章:

  • photoshop2024免费插件Portraiture3
  • NewStarCTF2023week4-More Fast(GC回收)
  • 和鲸赞助丨第16届中国R会议暨2023 X-AGI大会通知
  • Python第三方库 - Flask(python web框架)
  • c# sqlite 修改字段类型
  • [Pytorch] 保存模型与加载模型
  • AES解密报错,Input length must be multiple of 16 when decrypting with padded cipher
  • 电子学会C/C++编程等级考试2023年05月(三级)真题解析
  • 【2023_10_21_计算机热点知识分享】:机器学习中的神经网络
  • app开发者提升第四季度广告收入的方法
  • #电子电器架构 —— 车载网关初入门
  • 系统工程利用计算机作为工具
  • MathType7.4绿色和谐版数学公式编辑器
  • JAVA代码审计-纵向越权漏洞分析
  • 【PG】PostgreSQL逻辑备份(pg_dump)
  • JVM、JRE、JDK
  • Latex 插入矢量图
  • git:删除上一次 commit 中的某个文件,并重新提交
  • proxy解决跨域问题
  • Ubuntu源码编译samba
  • conda虚拟环境配置
  • 如何制作自己的数字人
  • JAVA毕业设计103—基于Java+Springboot+vue的药店管理系统(源码+数据库)
  • LeetCode66——加一
  • CV计算机视觉每日开源代码Paper with code速览-2023.10.23
  • C语言 sizeof 函数内部进行计算
  • 导致爬虫无法使用的原因有哪些?
  • paddlepaddle使用实践过程中的问题记录
  • MySQL数据库 #3
  • XQ350441.0、XQ350641.0、XQ350441.1、XQ350641.1、XQ350441.2、XQ350641.2三位五通电磁气动阀