一般来说,matplotlib polt 得坐标轴都是 数值, 画折线时,坐标点是在直角坐标系中。

但我们展示可视化结果时经常需要用到日期作为横坐标轴。

比如以下数据,如果直接把日期作为Xdata , 会出现一个 类似这样得错误

ValueError: could not convert string to float: '2020-02-05'

源数据是一个Excel 文件(KMI.xls) , 大概如此:

综合 服务 制造业
2021-10-08 51.4 2021-10-08 53.4 2021-09-30 50
2021-09-03 47.2 2021-09-03 46.7 2021-09-01 49.2
2021-08-04 53.1 2021-08-04 54.9 2021-08-02 50.3
2021-07-05 50.6 2021-07-05 50.3 2021-07-01 51.3
2021-06-03 53.8 2021-06-03 55.1 2021-06-01 52
2021-05-07 54.7 2021-05-07 56.3 2021-04-30 51.9
2021-04-06 53.1 2021-04-06 54.3 2021-04-01 50.6
2021-03-03 51.7 2021-03-03 51.5 2021-03-01 50.9
2021-02-03 52.2 2021-02-03 52 2021-02-01 51.5
2021-01-06 55.8 2021-01-06 56.3 2021-01-04 53
2020-12-03 57.5 2020-12-03 57.8 2020-12-01 54.9
2020-11-04 55.7 2020-11-04 56.8 2020-11-02 53.6
2020-10-09 54.5 2020-10-09 54.8 2020-09-30 53
2020-09-03 55.1 2020-09-03 54 2020-09-01 53.1
2020-08-05 54.5 2020-08-05 54.1 2020-08-03 52.8
2020-06-03 54.5 2020-06-03 55 2020-07-01 51.2
2020-05-07 47.6 2020-05-07 44.4 2020-06-01 50.7
2020-04-03 46.7 2020-04-03 43 2020-04-30 49.4
2020-03-04 27.5 2020-03-04 26.5 2020-04-01 50.1
2020-02-05 51.9 2020-02-05 51.8 2020-03-02 40.3

实现代码如下

# encoding: utf-8
"""
@author: 陈年椰子
@contact: hndm@qq.com
@version: 1.0
@project:test
@file: KMI_plot.py
@time: 2021-12-13 14:11说明
"""
import pandas as pd
import matplotlib.dates as mdates
import matplotlib.pyplot as plt# 为日期转换做准备
from pandas.plotting import register_matplotlib_converters
register_matplotlib_converters()# 读取数据 修改字段名,选择6列数据
KMI_col = ['zh_d','k1','zh','fw_d','k2','fw','zz_d','k3','zz']
df1 = pd.read_excel("KMI.xls", names = KMI_col)
# print(df1.head())
df2 = df1[['zh_d','zh','fw_d','fw','zz_d','zz']]
print(df2.head())# 准备画布
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)# 获取日期列表
x = pd.to_datetime(df1['zh_d'])
y = pd.to_datetime(df1['fw_d'])
z = pd.to_datetime(df1['zz_d'])# 画折线
ax.plot(x, df1['zh'], color='tab:blue')
ax.plot(y, df1['fw'], color='tab:orange')
ax.plot(z, df1['zz'], color='tab:green')#设置月定位符 , 按季度显示,否则太挤了
ax.xaxis.set_major_locator(mdates.MonthLocator(interval=3)) # interval = 3 季度#设置日期的格式
ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y%m'))# 显示
plt.show()

matplotlib polt 使用日期作为横坐标轴相关推荐

  1. Matplotlib设置坐标轴日期格式

    Matplotlib设置坐标轴日期格式 绘制双坐标轴 ax2=ax1.twinx() 创建了一个独立的Y轴,共享了X轴.双坐标轴! 类似的还有twiny() 设置坐标轴日期格式 需要导入matplot ...

  2. python matplotlib x轴日期显示问题。matplotlib 坐标轴设置文本间隔,matplotlib 坐标轴过于密集、无法实现其他功能。

    笔者想要达成的目的:分区作图.日期坐标轴 笔者遇到的问题: 1.日期坐标轴变成一个大黑条: 2.按照其他帖子设置后,要么调整不成功,要么调整成功了但是其他的调整(包括画面尺寸)失效,要么同时产生了一堆 ...

  3. 深入浅出matplotlib(74): 股票数据按日期显示

    前面已经学习Matplotlib在坐标格式化显示日期,这里再次来学习一下日期显示,因为股票的数据都是以交易日期为主轴的数据,自然而然,日期就是股票数据显示的关键信息,无论进行单日比较,还是同期比较,都 ...

  4. Matplotlib(五)matplotlib基础用法

    Matplotlib是一个综合的(comprehensive ).用于创建静态.动态和交互性可视化Python库.先来看看一个典型的使用这个库的一个例子: import matplotlib.pypl ...

  5. Matplotlib的一些基本概念

    快速入门 这个教程包含了些基础的用法示例和练习,可以帮助您很快熟悉Matplotlib. import matplotlib as mpl import matplotlib.pyplot as pl ...

  6. python 坐标轴刻度_给妹子讲python-S02E08坐标轴与主次刻度

    微信公众号: python数据科学家 [要点抢先看] 1.剖析plt和坐标轴对象ax的关系 2.主刻度与次刻度的概念 3.格式生成器与定位器的概念 4.数值型主次刻度与自定义格式生成器函数举例 5.日 ...

  7. Python股票分析系列——基础股票数据操作(二).p4

    该系列视频已经搬运至bilibili: 点击查看 欢迎来到Python for Finance教程系列的第4部分.在本教程中,我们将基于Adj Close列创建烛台/ OHLC图,这将允许我介绍重新采 ...

  8. 05.序列模型 W3.序列模型和注意力机制(作业:机器翻译+触发词检测)

    文章目录 作业1:机器翻译 1. 日期转换 1.1 数据集 2. 用注意力模型进行机器翻译 2.1 注意力机制 3. 可视化注意力 作业2:触发词检测 1. 数据合成:创建语音数据集 1.1 听一下数 ...

  9. python画k线图_Python绘制K线图

    不管是对量化分析师还是普通的投资者来说,K线图(蜡烛图)都是一种很经典.很重要的工具.在K线图中,它会绘制每天的最高价.最低价.开盘价和收盘价,这对于我们理解股票的趋势以及每天的多空对比很有帮助. 一 ...

最新文章

  1. 有多少智能,就有多少人工?人工智能背后的数据标注师
  2. ubuntu创建新用户名和密码以及查看删除用户
  3. 在iis中注册.net framework
  4. Java构造函数的深入理解
  5. 复制含有随机指针节点的链表~哈希表的使用~(⌒▽⌒)
  6. django-cookie与session的应用场景
  7. canny算子_Canny边缘检测算法
  8. 何小鹏:雷军造车是我“怂恿的” 我一直建议小米要造车
  9. 敏捷开发一千零一问系列之九:总体架构什么时机进行?(上)
  10. 用python画图代码-【Matplotlib】利用Python进行绘图
  11. bzoj 3170: [Tjoi 2013]松鼠聚会
  12. 基于人脸识别实现课堂抬头率检测
  13. linux oracle client 安装,Instant Client 下载 适用于 Linux x86-64(64 位)
  14. 复旦大学高等数学学习网站
  15. 测试计划与测试方案区别
  16. 大家说说有必要免费建网站吗?
  17. spring cloud-熔断(六)
  18. WIFI限制敏感网页_秒杀同类“付费投屏”软件,完全免费无限制
  19. ubuntu美化--壁纸软件
  20. Linux的软件包封装格式有,RED HAT LINUX所提供的安装软件包,默认的打包格式为( )。...

热门文章

  1. 3D游戏编程实践——Priests and Devils(动作分离版)
  2. 读书有益——》言归正传:单田芳说单田芳
  3. nginx代理mysql数据库 stream
  4. Vue2 中 ?. 可选链式调用操作符出现的问题
  5. 从零开始搭建一个艺术风格(深度学习)转换ios app
  6. 在苹果手机html变大,iPhone手机屏幕变大了怎么办?iPhone设置屏幕缩放的方法
  7. 小程序如何制作和代理
  8. Python 实现四边形分割:用 Python 切割图片
  9. 安装时间大于30秒_新笑傲江湖手游牧羊度谷玩法即将上线,4月30日更新维护公告...
  10. 迅雷前CEO陈磊涉嫌职务侵占被调查,案由包括挪用公司数千万资金用于非法炒币