我正在尝试对每个日期/时间组合的DataFrame中的项目数进行散点图。我已按以下方式对数据进行分组:
dff = pd.DataFrame(df.groupby(['date', 'time']).size().rename('count'))
它看起来像这样:
count
date time
2017-05-19 15:00 1
15:30 1
16:00 1
16:30 1
17:00 1
2017-05-23 10:00 2
10:30 2
11:00 2
...
现在,我如何分散绘制X轴上date
和Y轴上time
s的计数? plt.scatter(x, y, s=area, c=colors)
是签名,但是我尝试从x
选择y
和dff
,但无法找到密钥。此外,scatter
期望轴上有浮点数,而我有字符串。
答案 0 :(得分:2)
这需要访问MultiIndex
值,如下所示:
# replicating sample data (foo is just dummy data for the count)
grouped = df.groupby(['date', 'time'])['foo'].count()
date time
2015-01-01 15:00:00 1
15:30:00 1
2015-01-02 16:00:00 2
Name: foo, dtype: int64
plt.scatter(x=grouped.index.get_level_values(0), y=grouped.index.get_level_values(1), s=[20*4**n for n in grouped.values])
plt.show()
您需要使用s
中的scatter()
参数,这是我用于此的文档 - pyplot scatter plot marker size。