首页 > 代码库 > 基于Quick BI的用户分布分析

基于Quick BI的用户分布分析

Quick BI的气泡地图功能能非常直观得体现全国各区域的数据情况。这里从网上搜了一份某社交网站的用户数据,数据量就五六万条,而且只包含这些用户的公开信息(省的自己还要去爬)。

数据预处理

数据包含的字段为uid、location、gender、followersnum、friendsnum,分别是用户id、所在区域、性别、关注人数、好友人数。里面的location这个字段是中文的,看到为“浙江”这样的就写了省的,也有是“浙江 杭州”这样到省、市的,而且中间用空格分割。另外还有一些写的是“海外”或“其他”。

先用个SQL对数据进行处理,整理出一个所在省的字段

create table wbuser2 AS
select b.*
  from(
select a.uid, a.`location`, a.`gender`, a.`followersnum`, a.`friendsnum`, a.`location` as province_name
  from `wbuser` a
 where instr(a.location, ‘ ‘)= 0
 union all
select a.uid, a.`location`, a.`gender`, a.`followersnum`, a.`friendsnum`, substr(a.location, 1, instr(a.location, ‘ ‘)) as province_name
  from `wbuser` a
 where instr(a.location, ‘ ‘)> 0) b

工作表

数据处理好了后,我们配置数据源,并根据这张表创建一张工作表,刚生成的工作表如图:
技术分享

然后我们需要对数据进行一些设置:

  • 设置地理位置维度
    技术分享

  • 修改计量的统计方式。我们不需要计算整个省的所有用户的总的好友数,也是想要平均值。关注也一样
    技术分享

  • uid我们使用count(uid)来获得每个地区的用户量分布。转化后因为uid是字符串类型,所以默认是count
    技术分享

  • 对于省是“其他”和“海外”的,我们不统计
    技术分享
    技术分享

  • 最后查询数据并保存。技术分享

仪表盘

最后我们创建一个仪表盘,格式为气泡地图,数据来自工作表
技术分享

本来所有的工作都已经完成了,但是看一下followersnum,发现台湾的数据怎么特别大,导致其他地区全是蓝点了。
技术分享

于是我们查一下数据,看看是怎么样的

select a.`province_name`,
       avg(a.`followersnum`) as followersnum
  from `wbuser2` a
 group by a.`province_name`
 order by followersnum desc;

看到台湾的数据特别大,除了台湾外,香港和北京也比较大。
技术分享
所以我们修改了图标的值域
技术分享
最后结果如下
技术分享

通过数据可视化,我们能更容易地发现数据中的一些异常和规律(比如台湾的followersnum特别大)至此大功告成!

阅读原文请点击

基于Quick BI的用户分布分析