Python Matplotlib Plot - 将x轴从int更改为日期以生成平滑的折线图

时间:2017-02-08 15:27:19

标签: python datetime matplotlib

我正在尝试使用matplotlib制作一个情节。我当前的日期实际上是整数,195003,195006等。因此,当我制作情节时,折线图并不平滑,因为195012至195101之间存在较大差距。有没有办法解决这个问题?非常感谢!

import matplotlib.pyplot as plt


x = [195003,195006,195009,195012,195103,195106,195109]

y = [1,2,3,4,3,2,1]

plt.plot(x,y)


 #This is the target - a smooth line chart

plt.figure(2)

plt.plot(y)

1 个答案:

答案 0 :(得分:0)

如果我正确读到这个,整数195003代表1950年3月?所以我认为将整数日期转换为datetime.date个对象会做你想要的,因为matplotlib可以获取x数据的日期列表。

import datetime
x = [195003,195006,195009,195012,195103,195106,195109]
y = [1,2,3,4,3,2,1]
years = [str(y)[:4] for y in x]
months = [str(m)[4:] for m in x]
dates = [datetime.date(int(y), int(m), 1) for y,m in zip(years, months)]
plt.plot(dates, y)