banner

数据可视化︱通过设计提升R语言的数据可视化效果

作者: 大数据观察来源: 大数据观察时间:2017-08-07 18:21:420

 

当我开讲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语言里的几行代码节省了一天手工绘制线条的时间。

banner
看过还想看
可能还想看
热点推荐

永洪科技
致力于打造全球领先的数据技术厂商

申请试用
Copyright © 2012-2024开发者:北京永洪商智科技有限公司版本:V10.2
京ICP备12050607号-1京公网安备110110802011451号 隐私政策应用权限