以索引中的日期绘制数据框,但在X轴上仅绘制月份

时间:2019-07-15 15:21:55

标签: python pandas date plot

我想看看四月和火星之间的价值演变。因此,例如对于2018年,我每天都有从01/04/2018到31/03/2018的数据。我想绘制2016年的数据; 2017; 2018; 2019。 目前,我在4个不同的数据框中获取每个期间的数据。然后,我创建另一个具有5列的数据框:每个4数据和一个列用于日期(例如,从2016年开始的日期),将其放入索引中。 然后,我仅使用df.plot(),它将绘制出良好的数据 但是,在轴上,我有图例2016-04,...在2017-04时,我现在只想要月份,因为年份在图例中,而在x轴上不正确(您可以在屏幕截图中看到) 更好的是04-01、06-01、08-01、10-01、12-01、02-01 04-01 这是我的代码:

sql2016 = "SELECT Date, Value FROM database WHERE Date>'2016-03-31' and Date<'2017-04-01' ORDER BY Date"
sql2017 = "SELECT Date, Value FROM database WHERE Date>'2017-03-31' and Date<'2018-04-01' ORDER BY Date"
sql2018 = "SELECT Date, Value FROM database WHERE Date>'2018-03-31' and Date<'2019-04-01' ORDER BY Date"
sql2019 = "SELECT Date, Value FROM database WHERE Date>'2019-03-31' and Date<'2020-04-01' ORDER BY Date"
df2016 = pd.read_sql(sql2016, conn)
df2017 = pd.read_sql(sql2017, conn)
df2018 = pd.read_sql(sql2018, conn)
df2019 = pd.read_sql(sql2019, conn)
df = df2016.copy()
df['2017'] = df2017['Value']
df['2018'] = df2018['Value']
df['2019'] = df2019['Value']
df = df.rename(index=str, columns={"Value": "2016"})
df = df.set_index('Date')
df.plot(figsize=(15,3), title='title', grid=True)

enter image description here

0 个答案:

没有答案