Bubble Plot Pandas(或Python)工作日/小时

时间:2017-09-05 18:37:02

标签: python pandas matplotlib visualization seaborn

我试图生成一个气泡图,将频率绘制为工作日和一天中的小时,就像这个情节一样: https://i.stack.imgur.com/TP4ZF.jpg 数据位于以下格式的pandas数据框中:

weekday hour freq
    0   0    22710
    0   1    22685
    0   2    21673
    0   3    22276
    0   4    21531
    0  ...    ...
    0   23   12343
   ...  ...   ...
    6   23   34231

我尝试了以下内容,但它根本不起作用:

df.plot.scatter(x='hour', y='weekday', s=df['freq']);

生成的图表似乎有正确的轴,但是被一个大的蓝色矩形所覆盖(参见https://i.stack.imgur.com/2BLzR.png)。 忽略大小参数也不起作用(显示均匀填充的散点图/点图)。

2 个答案:

答案 0 :(得分:1)

你的体型大小太大了。缩放它,可能像

norm = max(df['freq'])
df.plot.scatter(x='hour', y='weekday', s=df['freq'] / norm);

答案 1 :(得分:0)

刚发布这个问题(以及引起相当头痛的研究时间)后,我找到了答案。 Matplotlibs散点图大小参数不是针对较大的绝对值而制作的,并且不会缩放或取相对值,因此覆盖整个图表的“蓝色块”区域。通过更改代码(添加缩放因子),可以生成一个漂亮的图表:

df.plot.scatter(x='hour', y='weekday', s=df['freq']*0.001);