我希望能够在一周中的每一天,每周和每月的几周内可视化我的数据点.我能够每年可视化我的数据.但是当我调整每月和每周的代码时,x轴仍然是每年.
我有8年的医院记录.我的数据分为两列.第1列是我的“日期”列,从2010-03-10开始,到2017-12-31结束.第2列是我的值列.本专栏列出了我是否有患者进行治疗.第2列中的值为0或x数字.例如0意味着我没有患者x意味着我有x个患者.当我尝试以图形方式表示此数据时,它只计算我每周最大的x数.
df=pd.read_csv('Data 3.csv', parse_dates=["Dates"], index_col="Dates")
# create the plot space upon which to plot the data
fig, ax = plt.subplots(figsize = (10,10))
# add the x-axis and the y-axis to the plot
ax.plot(df.resample('Y').sum()['Total # Events'],color = 'blue')
# rotate tick labels
plt.setp(ax.get_xticklabels(), rotation=45)
# set title and labels for axes
ax.set(xlabel="Years",
ylabel="Total # of Events",
title="Yearly Treatment Events from 2010-2017");
所以我得到了正确的图形.但是当我每月从(‘Y’)将(df.resample(‘Y’).sum()更改为(‘M’)时,我得到一个显示年度X轴和值的图表.我该如何更改这是为了获得月度X轴和每周X轴?
解决方法:
因此,正如我所假设的那样,考虑到日期可用,这很容易.
因此,首先创建新列,表示日期所属的周,年和月.为此,您需要在读取csv时将Dates设置为index和parse_dates:
data=pd.read_csv('Data 3.csv',index_col='Dates',parse_dates=True)
现在您可以创建三列:
data['Week']=data.index.week
data['Month']=data.index.month
data['Year']=data.index.year
这将为您提供如下数据:
Total # Events Week Year Month
Dates
2010-03-10 0 10 2010 3
2010-03-11 4 10 2010 3
2010-03-12 0 10 2010 3
2010-03-13 0 10 2010 3
2010-03-14 0 10 2010 3
2010-03-15 0 11 2010 3
2010-03-16 0 11 2010 3
2010-03-17 0 11 2010 3
2010-03-18 2 11 2010 3
2010-03-19 0 11 2010 3
而不是为你分享整个代码,我只是展示年份输出及其工作方式,休息我希望你可以自己做,或者你不会那样学习任何东西.
所以下一步是:
Yearwise=data.groupby(by=('Year')).sum()['Total # Events']
就是这样,绘制它:
plt.figure(figsize=(14,10))
Yearwise.plot()
您分享的图表是:
请记住,对于月份而言,您需要将年份和月份一起用于分组,否则它将最终将所有相同编号的月份分组在一起.我的意思是这样的 –
by=('Year','Month'))
休息我相信你可以自己搞清楚.如果你收到错误,请告诉我.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。