matplotlib绘图如何处理日期数据如“x月x日”

问题描述

数据文件如下图所示:
在这里插入图片描述
想要绘制横坐标为Date,纵坐标为Height的折线图(其他类型的图也是类似的)。关键的问题在于如何处理这种日期数据,正常绘图,并设置横坐标每隔x天显示刻度。
本文提供一个解决示例代码。

代码实现

import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.dates import MonthLocator


# 读取数据
path = 'data.csv'
data = pd.read_csv(path)

# 将日期转换成标准日期格式
data['Date'] = pd.to_datetime(data['Date'], format='%m月%d日')
# 将日期转换为字符串格式,保留月份和日期信息
data['Date'] = data['Date'].dt.strftime('%m-%d')

plt.rcParams['font.sans-serif'] = ['SimSun']
plt.figure(figsize=(10, 6))
plt.plot(data['Date'], data['Height'], color='skyblue')

# 设置每隔 15 天显示刻度
plt.gca().xaxis.set_major_locator(MonthLocator(bymonthday=(1, 15)))

# 自定义日期格式化器
def custom_date_format(x, pos):
    date_str = data['Date'][int(x)]
    month, day = date_str.split('-')
    return f"${int(month)}$月${int(day)}$日"

plt.gca().xaxis.set_major_formatter(custom_date_format)

plt.tight_layout()
plt.show()

示例图

以上代码的运行结果如下图所示:
在这里插入图片描述

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-03-19 22:54:01       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-19 22:54:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-19 22:54:01       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-19 22:54:01       20 阅读

热门阅读

  1. el-input添加keyup事件无响应

    2024-03-19 22:54:01       19 阅读
  2. 掘根宝典之c++标识符,命名

    2024-03-19 22:54:01       21 阅读
  3. 爬虫基本原理实现以及问题解决

    2024-03-19 22:54:01       21 阅读
  4. 系统架构设计师笔记第37期:数据访问层设计

    2024-03-19 22:54:01       16 阅读
  5. PyTorch学习笔记之基础函数篇(十二)

    2024-03-19 22:54:01       16 阅读
  6. [LLM]大模型八股知识点(一)

    2024-03-19 22:54:01       17 阅读
  7. 常见的几个Python技术难题

    2024-03-19 22:54:01       17 阅读