提升R语言的数据可视化效果的五个范例

浏览: 1897

        当我开讲R语言课程时,开场白通常是:纽约时报的视觉部门或Facebook,现在正在使用这款软件来挖掘数据,给出壮美的可视化效果。不过,说完这些之后,我需要努力给出实际的案例,以展示R语言输出的结果如何变为令人震惊的、信息量巨大的图片。现在,这终于不再那么困难了。

       去年,我与一位妙人设计师Oliver Uberti,一起写了一本书,其中有100多幅关于伦敦的地图和信息图。我们为这本《伦敦:信息之都》制作的绝大部分信息图,需要利用R语言,呈现某些形状或形式。R语言可用来做任何事,从简化数百万的GPS数据,到制作泡泡图或简单绘制大量直线。我们每三天就得做出一张图,以在截止期限前完成,如果复制粘贴R语言的代码毫无效率,或制作任何图片都没有灵活性,那么这本书不可能完成。如果你对利用R语言创作伟大图片的过程感兴趣,请注意下面展示的5组图片,包括利用R语言刚制作出的草图,到最后成型的作品。

       这张图片展示了英格兰南部通勤者起讫点流。在R语言中,我利用绝妙的ggplot2包中的geom_segment()命令,绘制起讫点重心间纤细透明的白色线条。我觉得,R语言制作出的图片在黑色背景下显得特别漂亮,不过,之后我们将其导入AdobeIllustrator,Oliver将一系列透明效果应用在线条上,使得线条在深蓝的背景下熠熠夺目(我们在整本书中使用了深蓝)

                

       这是我们制作的一张图片,展示了伦敦昼夜的人口分布,这里只展示晚上。为了制作这幅图,我复制了制作人口线图的代码,而Oliver努力手动清除了我过度绘制的红色线条的边缘(我在ggplot2中调试不出如何自动清除线条)。然后,在Illustrator中,转换了颜色,增加了标签。                

       这本书中我最爱的一张图片,显示了泰特美术馆中每位艺术家作品的数量。这里只展示了一小部分,而其全景尤为壮观,因为其中心突出了一幅特纳的绘画。这张图片以树形图的形式展示,矩形框的大小表示艺术家作品数量多少。可以很简单地在R语言的treemap包中使用treemap()功能来制作。Oliver费劲地将输出的图片打碎成小片,把矩形转换为图片相框,并将其挂在“墙上”。

               

       这张地图展示了伦敦一天中骑行者的情况。在这个例子中,R语言输出图片后,无需做太多工作,只是增加了泰晤士河、一些标签,然后优化了印刷颜色。这张地图中描绘出了几十万条线段,这也是R语言绘制海量数据能力的极佳例证。


       

       

       

       上图是至今为止书中最火的一张图片。该图利用了2011年的人口普查数据制作了不同婚姻状况的人口分布地图,并以水流图的形式展示出了绝对数量。利用ggplot2包制作出了地图和图片。我们坚持使用输出时地图的颜色,然后手动编辑水流图的颜色。水流图是利用ggplot2包中的geom_ribbon()功能制作的。

              

       目前为止展示的所有图片都是从数据开始的,最少也有数千行数据。最后这张图片,我们展示一个小型数据的例子—获得蓝色牌匾的100位伦敦人。手动编辑每个人的数据,每个人的名字包含3个属性:他们活着的年龄、他们创作最重要作品的年龄、他们一生中生活在伦敦的时期。多亏ggplot2包,我才能利用下面的代码输出上面看上去粗糙的图片。Oliver拿过图片,手指弹了弹,然后在Illustrator变换图片的风格、增加标签。这里最关键的是,R语言里的几行代码,节省了一天手工绘制线条的时间。  

     
       ggplot(Data,aes(order,origin))+geom_segment(aes(xend=order,yend=Age))+geom_segment(aes(x=order,y=st_age, xend=order, yend=end_age),col="red")+geom_segment(aes(x=order,y=st_age2, xend=order,yend=end_age2), col="yellow")+ coord_polar()
       
推荐 0
本文由 张浩然 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册