我有一个 Dataframe df
,其中包含变量month
、year
和value
。每个month
和year
组合在df
中只出现一次,因为我是通过将另一个 Dataframe 按year
和month
分组来生成df
的。使用matplotlib,我想同时绘制value
与month
和year
(不确定这是否是正确的表述方式),以获得类似于以下内容的图
请注意,x轴只显示year
,但实际上每个值都对应于month
和year
。
首先,我想通过简单地将月份和年份转换为datetime
来解决这个问题,但我无法做到这一点,因为我没有“天”字段来填写datetime
。作为一种解决方案,我想将每个month
和date
转换为datetime
,只使用每月的第一天作为必需的“天”字段,但这导致了点之间不必要的空间,(我想象)对应于每个连续月份的第一个月之间未使用的天数,而且绘图看起来明显不正确。所以我仍然在寻找解决方案。
帮助将不胜感激,因为我觉得这应该是相当简单,我错过了一些明显的。
编辑:下面是df的一个更明确的例子,我正在使用的 Dataframe
df =
year month val
0 2004 10 9
1 2004 12 3
2 2005 1 7
3 2005 2 2
4 2005 3 51
5 2005 4 60
6 2005 5 72
7 2005 6 73
.. ... ... ...
177 2019 8 115947
178 2019 9 101368
179 2019 10 96852
180 2019 11 88864
181 2019 12 38196
如上所述,很明显,由于df的构造方式,每个year
和month
组合在 Dataframe 中只出现一次,并具有关联的val
。 Dataframe 也按照year
和month
的升序排序。
1条答案
按热度按时间nnt7mjpx1#
如果我没理解错的话,你的 Dataframe 已经排序了,你只想连续地画出值,对吗?在这种情况下,你可以只画出"val"的值,并相应地设置x轴的刻度。
就这样吗?