加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

一个Facebook实习生画的全球好友关系图

(2010-12-17 16:27:28)
标签:

facebook

社交网络

全球

关系图

it

分类: IT观察
    Paul Butler 是 Facebook 的数据基础架构工程组(data infrastructure engineering team)的一名实习生,他在12月14日基于Facebook的数据,发布了一张很有意思的“可视化全球好友关系图”(Visualizing Friendships)。


    国内的36氪做了报道:http://www.36kr.com/9311 。但我感兴趣他是如何构思与画出这张图的,看了他的原始博文 ,简单翻译如下,与大家分享这位年轻实习生的创作过程:

“   数据可视化就像摄影术。只是你并不是从一个空白的画布上开始,而是由你来操作镜头从一个特定的角度来“看”数据。

    当这个数据来自5亿人的社会化图时,你可以通过很多种镜头去看她。其中一个引起我好奇的是朋友联系与地理位置的关系。我很感兴趣看一看地理和政治的边界是如何影响朋友关系的。我需要一个可视图来展示不同城市之间的朋友联系。

    我从我们的数据仓库 – Apache Hive(http://hive.apache.org/) 中抽取了1000万对朋友的采样数据。我将用户按城市进行数据分组,并将两个城市之间含有的朋友对的数量加和。然后再给每个城市加上的经纬度的属性值。

    基于这个基础,我用了一个开源的统计工具 – R (http://www.r-project.org/)来做数据挖掘。我根据城市的经纬度画坐标点,画完后,已经能大致看到一个世界的轮廓。接着抹掉这些点,开始画点与点之间线(注:一条线代表两个城市之间有一个“朋友对”)。几分钟的渲染后,一个巨大的白团出现在图的中心。团的一些外边界大致上接近一些大陆的边界,但很明显的,仅仅这样画线,会由于数据太多而得不出有趣的结果。我想也许让线条变得半透明会更好,但我立刻意识到我的绘图环境不能处理足够的色度来达到我想要的效果。

    于是我想了一个替代方法来模拟。我定义了每一对城市间的“权重值”,该值是另两个参数的函数(一个是城市间的欧几里得距离,另一个是两个城市所含“朋友对”的数目)。然后我根据“权重值”来画线,两个城市间“朋友对”的个数越多,该线条将越置于别的线条的上面。 我用了一个从黑到蓝到白的色盘来标识不同权重的线的颜色。我还将那些跨度超过半个地球的线做了一些处理,让他们尽量沿着图的边上走。

    又经过几分钟的渲染,新的图终于出来了,我看到后大吃一惊。那个大白团变成了令人惊讶的一个世界图。不仅大陆架清晰可见,连一些国家的边界线都很清楚。这些真令人目瞪口呆,因为这些线条并不是用来描述海岸线、河流或是政治边界的,仅仅是真实的人际关系。每条线可能描述了一对远隔重洋的驴友,或者是分居两地的家庭成员,甚或是一对老校友!

    最后,我按地球仪上两点的最短球面线将所有的线重画。得到了你们所看到的现在这张图!
    当我把这张图拿给 Facebook 其他同事分享时,引起了很多人的共鸣!这不仅仅是一幅可爱的画,这是跨越海洋和国境的社交网络对人类所产生影响的一个重新肯定! ”
 
   另,高清版"Facebook 全球好友关系图",欢迎大家下载分享!http://sinaurl.cn/hb81D6

评论:

  从某一个角度,Facebook 这张全球好友关系图,是全体 Facebook 用户所作,这位实习生只是找到一个“棱镜”,看到了并把它拍了下来。真正的画家是 Facebook 用户们不知不觉间完成的,而且现在还在继续“作画" ....!所以,你平时的每个生活轨迹,都在产生数据,都在参与画各种的“画”!


0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有