使用 matplotlib 绘制日期

里奇·克洛斯

我一直在尝试从包含日期和浮点数的逗号分隔的 csv 文件中绘制数据:

Date,Price (€)
01062017,20.90
02062017,30.90
03062017,40.90
04062017,60.90
05062017,50.90

然后我尝试使用以下代码绘制它:

import matplotlib.pyplot as plt
import numpy as np
import datetime

dates,cost = np.loadtxt('price_check.csv',delimiter=',',skiprows=1,unpack=True)

xdates = [datetime.datetime.strptime(str(int(date)),'%d%m%Y') for date in dates]

fig = plt.figure()
ax = plt.subplot(111)
plt.plot(xdates, cost,'o-',label='Cost')
plt.legend(loc=4)
plt.ylabel('Price (Euro)')
plt.xlabel('date')
plt.gcf().autofmt_xdate()
plt.grid()
plt.savefig('sunglasses_cost.png')
plt.show()

但是,当绘制数据时,日期字符串中的前导零似乎被删除:

在此处输入图片说明

有没有一种简单的方法可以在情节中使用完整的日期?

存在的重要性欧内斯特

问题是日期,它们被转换为整数并丢失它们的前导零。然后"01062017"变成1062017,然后被解释为(2017, 6, 10, 0, 0),所以 2 位数字为日,一位数为月份。对于5062017,因为没有 6 月 50 日,所以它被正确地解释为(2017, 6, 5, 0, 0)

解决此问题的侵入性最小的方法是格式化字符串,使其在日期时间转换之前始终具有 8 位数字:

xdates = [datetime.datetime.strptime('{:08}'.format(int(date)),'%d%m%Y') for date in dates]

这将导致正确的绘图。但是,xticklabels 可能会以不方便的方式显示。这可以通过选择一些定位器和格式化程序来调整

import matplotlib.dates as mdates
plt.gca().xaxis.set_major_locator(mdates.DayLocator())
plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%d-%m-%Y'))

在这里输入代码

作为最后一条评论:如果您可以选择输入文件的格式,则可能值得以明确的方式指定它,例如20170601.

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Matplotlib根据日期绘制死亡计数

来自分类Dev

使用matplotlib绘制日期时间输出

来自分类Dev

使用 NaN 值在 matplotlib 中绘制日期

来自分类Dev

使用matplotlib.pyplot中的日期绘制线性回归

来自分类Dev

使用 matplotlib,如何绘制条形图而不显示日期索引值之间的日期?

来自分类Dev

在matplotlib中绘制熊猫日期

来自分类Dev

使用Pandas / matplotlib绘制每日平均值时,更改日期时间刻度上的格式

来自分类Dev

我想使用matplotlib绘制日期图表,但它显示float()的无效文字:2014-12-10

来自分类Dev

使用Matplotlib绘制数据子集

来自分类Dev

使用MatPlotLib绘制线框球体

来自分类Dev

使用matplotlib绘制直方图或散点图

来自分类Dev

使用bokeh或matplotlib绘制主题

来自分类Dev

Python并绘制直方图(使用matplotlib)

来自分类Dev

使用matplotlib绘制RGB值

来自分类Dev

使用matplotlib绘制峰位置

来自分类Dev

使用bokeh或matplotlib绘制主题

来自分类Dev

使用Matplotlib绘制坐标线

来自分类Dev

使用Matplotlib绘制数据子集

来自分类Dev

使用 matplotlib 绘制 [x,y]

来自分类Dev

使用 matplotlib 绘制并排图表

来自分类Dev

如何使用Pandas / Matplotlib在X轴上绘制日期,在Y轴上绘制时间,并以HH:MM格式作为刻度标签绘制当前时间?

来自分类Dev

在matplotlib中绘制日期时间对象

来自分类Dev

matplotlib在熊猫DataFrame中绘制日期时间

来自分类Dev

连续绘制日期和数据matplotlib

来自分类Dev

连续绘制日期和数据matplotlib

来自分类Dev

如何使用groubby使用matplotlib绘制数据

来自分类Dev

如何使用matplotlib绘制元组列表?

来自分类常见问题

使用pandas和matplotlib绘制分类数据

来自分类Dev

如何使用Matplotlib的ConnectionPatch绘制虚线?

Related 相关文章

  1. 1

    使用Matplotlib根据日期绘制死亡计数

  2. 2

    使用matplotlib绘制日期时间输出

  3. 3

    使用 NaN 值在 matplotlib 中绘制日期

  4. 4

    使用matplotlib.pyplot中的日期绘制线性回归

  5. 5

    使用 matplotlib,如何绘制条形图而不显示日期索引值之间的日期?

  6. 6

    在matplotlib中绘制熊猫日期

  7. 7

    使用Pandas / matplotlib绘制每日平均值时,更改日期时间刻度上的格式

  8. 8

    我想使用matplotlib绘制日期图表,但它显示float()的无效文字:2014-12-10

  9. 9

    使用Matplotlib绘制数据子集

  10. 10

    使用MatPlotLib绘制线框球体

  11. 11

    使用matplotlib绘制直方图或散点图

  12. 12

    使用bokeh或matplotlib绘制主题

  13. 13

    Python并绘制直方图(使用matplotlib)

  14. 14

    使用matplotlib绘制RGB值

  15. 15

    使用matplotlib绘制峰位置

  16. 16

    使用bokeh或matplotlib绘制主题

  17. 17

    使用Matplotlib绘制坐标线

  18. 18

    使用Matplotlib绘制数据子集

  19. 19

    使用 matplotlib 绘制 [x,y]

  20. 20

    使用 matplotlib 绘制并排图表

  21. 21

    如何使用Pandas / Matplotlib在X轴上绘制日期,在Y轴上绘制时间,并以HH:MM格式作为刻度标签绘制当前时间?

  22. 22

    在matplotlib中绘制日期时间对象

  23. 23

    matplotlib在熊猫DataFrame中绘制日期时间

  24. 24

    连续绘制日期和数据matplotlib

  25. 25

    连续绘制日期和数据matplotlib

  26. 26

    如何使用groubby使用matplotlib绘制数据

  27. 27

    如何使用matplotlib绘制元组列表?

  28. 28

    使用pandas和matplotlib绘制分类数据

  29. 29

    如何使用Matplotlib的ConnectionPatch绘制虚线?

热门标签

归档