【发布时间】:2019-05-31 09:22:46
【问题描述】:
我希望能够在一周中的每一天、一年中的每一周和每个月可视化我的数据点。我能够每年可视化我的数据。但是当我调整每月和每周的代码时,x 轴保持每年不变。
我有 8 年的住院记录。我的数据分为 2 列。第 1 列是我的“日期”列,从 2010 年 3 月 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");
所以我得到了正确的图形。但是,当我每月将 (df.resample('Y').sum() 从 ('Y') 更改为 ('M') 时,我会得到一个显示每年 X 轴和值的图表。我该如何更改获取每月 X 轴和每周 X 轴?
【问题讨论】:
-
你能提供样本数据来进行一些分析吗?据我所知,如果您有日期,则可以使用日期时间索引,并通过使用值所属的周、月或年将数据分组为每周、每月和每年,然后对它们求和,然后执行绘图。它不应该那么困难。如果你提供我 2 年的小样本,我可以告诉你如何去做。也许使用 Google Drive 来共享示例数据。
-
听起来不错。这是数据集的谷歌驱动器。谢谢您的帮助! drive.google.com/file/d/16m_0tl3_MEzAQ7g5E02uZXQAkRiBt3WA/…
-
给我 5 分钟,继续努力。
-
所以我已经尝试了所有方法,我认为唯一的解决方案是每周和每月使用不同的数据表示形式。您可以取消堆叠您的值并分别显示一年中每个月的多行。 Qlik 和其他可视化软件在其下方显示月份和年份,有点像这样:community.qlik.com/legacyfs/online/… 但不确定这在 Python 中是否可行。你在上图中看到的,你想要那种东西吗?
-
是的,我想要这样的东西。我在使用 MATLAB 之前已经这样做了,我记得这非常乏味,因为我必须循环所有内容才能得到我想要的。我试图避免在 Python 中做同样的事情。我在 GitHub 上发布了我的代码供您查看。顺便说一句,非常感谢您到目前为止的所有帮助! github.com/3twezzy/…
标签: python pandas matplotlib data-visualization