- +1
提升R语言的数据可视化效果的五个范例
文献/ 众山小 校核/ 张丹云 编辑/ 众山小
当我开讲R语言课程时,开场白通常是:纽约时报的视觉部门或Facebook,现在正在使用这款软件来挖掘数据,给出壮美的可视化效果。不过,说完这些之后,我需要努力给出实际的案例,以展示R语言输出的结果如何变为令人震惊的、信息量巨大的图片。现在,这终于不再那么困难了。
去年,我与一位妙人设计师Oliver Uberti,一起写了一本书,其中有100多幅关于伦敦的地图和信息图。我们为这本《伦敦:信息之都》制作的绝大部分信息图,需要利用R语言,呈现某些形状或形式。R语言可用来做任何事,从简化数百万的GPS数据,到制作泡泡图或简单绘制大量直线。我们每三天就得做出一张图,以在截止期限前完成,如果复制粘贴R语言的代码毫无效率,或制作任何图片都没有灵活性,那么这本书不可能完成。如果你对利用R语言创作伟大图片的过程感兴趣,请注意下面展示的5组图片,包括利用R语言刚制作出的草图,到最后成型的作品。
这张图片展示了英格兰南部通勤者起讫点流。在R语言中,我利用绝妙的ggplot2包中的geom_segment()命令,绘制起讫点重心间纤细透明的白色线条。我觉得,R语言制作出的图片在黑色背景下显得特别漂亮,不过,之后我们将其导入AdobeIllustrator,Oliver将一系列透明效果应用在线条上,使得线条在深蓝的背景下熠熠夺目(我们在整本书中使用了深蓝)。
上图是至今为止书中最火的一张图片。该图利用了2011年的人口普查数据制作了不同婚姻状况的人口分布地图,并以水流图的形式展示出了绝对数量。利用ggplot2包制作出了地图和图片。我们坚持使用输出时地图的颜色,然后手动编辑水流图的颜色。水流图是利用ggplot2包中的geom_ribbon()功能制作的。
#We order by age of when the person startedliving in London, this is the order field.
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()
源自微信公众号“一览众山小-可持续城市与交通”
- 报料热线: 021-962866
- 报料邮箱: news@thepaper.cn
互联网新闻信息服务许可证:31120170006
增值电信业务经营许可证:沪B2-2017116
© 2014-2024 上海东方报业有限公司