python使用pyplot绘制横轴为时间的图

 更新时间:2024年09月19日 09:32:49   作者:豆腐脑lr  
介绍了如何在Python中使用matplotlib库进行绘图,并处理字符串日期格式转换为date对象以及自定义x轴日期显示格式的方法,首先,导入必要的环境和绘图方法,其次,处理横坐标数组,将字符串型的日期转换成date对象,以便用于绘图

1. 导入环境

import numpy as np
import matplotlib.pyplot as plt

from IPython import display
from datetime import datetime
from datetime import date

2. 绘图方法

def myplot(x, y, label=None, xlimit=None, size=(9, 3),fileName=None):
    display.set_matplotlib_formats('svg')
    if len(x) == len(y):
        plt.figure(figsize=size)
        if xlimit and isinstance(xlimit, tuple):
            plt.xlim(xlimit)
        plt.plot(x, y, label=label)
        if label and isinstance(label, str):
            plt.legend()
        if fileName:
            plt.savefig(fileName)
        plt.show()
    else:
        raise ValueError("x 和 y 的长度不一致!")

3. 绘图

原始横坐标数组是一个字符串型的,无法直接用于plot(x, y)中的x

time[0:10]
array([['2019-01-01 00:14:00'],
       ['2019-01-01 00:29:00'],
       ['2019-01-01 00:44:00'],
       ['2019-01-01 00:59:00'],
       ['2019-01-01 01:14:00'],
       ['2019-01-01 01:29:00'],
       ['2019-01-01 01:44:00'],
       ['2019-01-01 01:59:00'],
       ['2019-01-01 02:14:00'],
       ['2019-01-01 02:29:00']], dtype='<U19')

将字符串的时间转换成date对象

x_time= [datetime.strptime(d, '%Y-%m-%d %H:%M:%S') for d in time]  

绘图

myplot(x_time, y_num, label='car_num', 
       xlimit=(date(2019, 1, 1), date(2019, 1, 22) ),
       size=(12, 3),
       fileName='my_dataset-car-num.svg')

4.自定义x轴日期显示格式

如果想自定义坐标轴显示格式,可以更改一下绘图方法,通过DateFormatter来实现。

from matplotlib.dates import DateFormatter

def myplot(x, y, label=None, xlimit=None, size=(9, 3),fileName=None):
    display.set_matplotlib_formats('svg')
    if len(x) == len(y):
        plt.figure(figsize=size)
        if xlimit and isinstance(xlimit, tuple):
            plt.xlim(xlimit)
        plt.plot(x, y, label=label)
        if label and isinstance(label, str):
            plt.legend()
        if fileName:
            plt.savefig(fileName)
        # ======= 以下是新增代码
        ax = plt.gca()
        formatter = DateFormatter('%H:%M')
        ax.xaxis.set_major_formatter(formatter) # 设置时间显示格式   
        # ==============
        plt.show()
    else:
        raise ValueError("x 和 y 的长度不一致!")

效果如下:

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 使用Selenium实现微博爬虫(预登录、展开全文、翻页)

    使用Selenium实现微博爬虫(预登录、展开全文、翻页)

    这篇文章主要介绍了使用Selenium实现微博爬虫(预登录、展开全文、翻页),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • python实现json文件的增删改操作方法

    python实现json文件的增删改操作方法

    这篇文章主要介绍了python实现json文件的增删改操作,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-06-06
  • Django框架中间件(Middleware)用法实例分析

    Django框架中间件(Middleware)用法实例分析

    这篇文章主要介绍了Django框架中间件(Middleware)用法,结合实例形式分析了Django框架中间件(Middleware)的功能、用法及相关操作技巧,需要的朋友可以参考下
    2019-05-05
  • 使用python-pptx操作PPT的示例详解

    使用python-pptx操作PPT的示例详解

    python对PPT演示文档读写,是通过第三方库python-pptx实现的,python-pptx是用于创建和更新 PowerPoint文件的 Python 库。本文主要介绍了python-pptx操作PPT的相关示例,希望对大家有所帮助
    2023-01-01
  • python 如何将浮点数尾部无效0去掉和无效的‘.’号

    python 如何将浮点数尾部无效0去掉和无效的‘.’号

    这篇文章主要介绍了python 如何将浮点数尾部无效0去掉和无效的‘.’号,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • 基于python实现Pycharm断点调试

    基于python实现Pycharm断点调试

    这篇文章主要介绍了基于python实现Pycharm断点调试,在我们写程序的时候,很容易遇到各种各样的bug,然后编译器提示程序出错的地方。很多时候可以通过提示的信息修改程序,但是有时我们想得到更多的信息,这个时候就需要进行断点调试,下面我们就一起来学习ycharm断点调试
    2022-02-02
  • python爬取网页版QQ空间,生成各类图表

    python爬取网页版QQ空间,生成各类图表

    最近python课程学完了,琢磨着用python点什么东西,经过一番搜索,盯上了QQ空间,本文主要讲述了如何爬取网页版QQ空间,并生成词云图、柱状图、折线图、饼图的各种示例代码
    2021-06-06
  • Pytorch基础教程之torchserve模型部署解析

    Pytorch基础教程之torchserve模型部署解析

    torchserve是基于netty网络框架实现的,底层使用EpollServerSocketChannel服务进行网络通信,通过epoll多路复用技术实现高并发网络连接处理,这篇文章主要介绍了Pytorch基础教程之torchserve模型部署和推理,需要的朋友可以参考下
    2023-07-07
  • Python实现音频水印的完整方案

    Python实现音频水印的完整方案

    音频水印技术是一种将特定信息嵌入到音频文件中的方法,以确保版权保护、内容验证和隐藏通信,本文将深入探讨音频水印技术的原理,并提供一个基于Python的完整实现方案,需要的朋友可以参考下
    2025-12-12
  • Python简单实现网页内容抓取功能示例

    Python简单实现网页内容抓取功能示例

    这篇文章主要介绍了Python简单实现网页内容抓取功能,结合实例形式分析了Python基于urllib模块的网页请求、内容读取等相关操作技巧,需要的朋友可以参考下
    2018-06-06

最新评论