我试图生成一个气泡图,将频率绘制为工作日和一天中的小时,就像这个情节一样: 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)。 忽略大小参数也不起作用(显示均匀填充的散点图/点图)。
答案 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);