标签归档:ggplot2

利用R语言进行交互数据可视化

作者:谢佳标(乐逗游戏,深圳)

上周在中国R语言大会北京会场上,给大家分享了如何利用R语言交互数据可视化。现场同学对这块内容颇有兴趣,故今天把一些常用的交互可视化的R包搬出来与大家分享。

rCharts

说起R语言的交互包,第一个想到的应该就是rCharts包。该包直接在R中生成基于D3的Web界面。

rCharts包的安装

require(devtools)
install_github('rCharts', 'ramnathv')

rCharts函数就像lattice函数一样,通过formula、data指定数据源和绘图方式,并通过type指定图表类型。

下面通过例子来了解下其工作原理。我们以鸢尾花数据集为例,首先通过name函数对列名进行重新赋值(去掉单词间的点),然后利用rPlot函数绘制散点图(type=”point”),并利用颜色进行分组(color=”Species”)。 继续阅读利用R语言进行交互数据可视化

一行R代码来实现繁琐的可视化

本文作者: 唐源,目前就职于芝加哥一家创业公司,曾参与和创作过多个被广泛使用的 R 和 Python 开源项目,是 ggfortify,lfda,metric-learn 等包的作者,也是 xgboost,caret,pandas 等包的贡献者。(喜欢爬山和烧烤

ggfortify 是一个简单易用的R软件包,它可以仅仅使用一行代码来对许多受欢迎的R软件包结果进行二维可视化,这让统计学家以及数据科学家省去了许多繁琐和重复的过程,不用对结果进行任何处理就能以 ggplot 的风格画出好看的图,大大地提高了工作的效率。

ggfortify 已经可以在 CRAN 上下载得到,但是由于最近很多的功能都还在快速增加,因此还是推荐大家从 Github 上下载和安装。

library(devtools)
install_github('sinhrks/ggfortify')
library(ggfortify)

接下来我将简单介绍一下怎么用 ggplot2ggfortify 来很快地对PCA、聚类以及LFDA的结果进行可视化,然后将简单介绍用 ggfortify 来对时间序列进行快速可视化的方法。

PCA (主成分分析)

ggfortify 使 ggplot2 知道怎么诠释PCA对象。加载好 ggfortify 包之后, 你可以对stats::prcompstats::princomp 对象使用 ggplot2::autoplot

library(ggfortify)
df <- iris[c(1, 2, 3, 4)]
autoplot(prcomp(df))

ggfortify-unnamed-chunk-1-1你还可以选择数据中的一列来给画出的点按类别自动分颜色。输入help(autoplot.prcomp) 可以了解到更多的其他选择。

autoplot(prcomp(df), data = iris, colour = 'Species')

ggfortify-unnamed-chunk-2-1比如说给定label = TRUE 可以给每个点加上标识(以rownames为标准),也可以调整标识的大小。

autoplot(prcomp(df), data = iris, colour = 'Species', label = TRUE,
         label.size = 3)

ggfortify-unnamed-chunk-3-1给定 shape = FALSE 可以让所有的点消失,只留下标识,这样可以让图更清晰,辨识度更大。

autoplot(prcomp(df), data = iris, colour = 'Species', shape = FALSE,
         label.size = 3)

ggfortify-unnamed-chunk-4-1

继续阅读一行R代码来实现繁琐的可视化

Hadley Wickham:一个改变了R的人

【COS编辑部按】本译文得到了原英文作者的授权同意,翻译:冯俊晨、王小宁, 审校:邱怡轩、朱雪宁、蔡寒蕴,编辑:王小宁。

Hadley Wickham 是 RStudio 的首席科学家以及 Rice University 统计系的助理教授。他是著名图形可视化软件包 ggplot2 的开发者,以及其他许多被广泛使用的软件包的作者,代表作品如 plyrreshape2 等。本文取自PRICEONOMICS.

HadleyObama

继续阅读Hadley Wickham:一个改变了R的人

R绘制中国地图,并展示流行病学数据

本文作者:姜晓东,博士毕业于上海交通大学,目前任教于湖南师范大学医学院,专业神经毒理学。

流行病学的数据讲究“三间分布”,即人群分布、时间分布和空间分布。其中的“空间分布”最好是在地图上展示,才比较清楚。R软件集统计分析与高级绘图于大成,是最适合做这项工作了。关于地图的绘制过程,谢益辉、邱怡轩和陈丽云等人都早有文章讲述,开R地图中文教程之先河。由于目前指导毕业论文用到,因此研究了一下。本来因为网上教程很多,曾打消了写些文字的计划,但怡轩版主鼓励说“教程者众,整合者鲜”,所以才战胜拖延症,提起拙笔综述整合一下,并对DIY统计GIS地图提出了一点自己的想法。

1 地图GIS数据的来源与R绘制软件包

中国地图GIS数据的官方数据可以在国家基础地理信息中心的网站(http://nfgis.nsdi.gov.cn)里面可以免费下载。官方公开的数据包括:地图数据,及居住地、交通、河流等辅助数据。今年6月开始,官方正组织开始制作新版数据。老数据暂时无法下载,读者要自行百度搜索,本文以旧版数据为例。旧版地图数据中部分地名和地市区划已经过时,使用时需注意。

地图数据有4个压缩文件:bou1_4m.zip、bou2_4m.zip、bou3_4m.zip和bou4_4m.zip。bou代表边界的意思,数字1~4代表国家、省、市、县的4级行政划分;4m代表比例是400万分之一,这个比例的图形是公开的。每个文件解压缩后含有两类文件:以字母p结尾的表示多边形数据,用来绘制区域;以字母l结尾的文件是线形数据,用来绘制边界。但是老版数据中,市级数据中缺少绘制区域的多边形数据,让市级分布图的绘制稍麻烦一些,新版中也许会有改进。

用R绘制地图比较简单。比如画一下全国范围的区域,可以用如下代码:

library(maptools)
mydat = readShapePoly("maps/bou1/bou1_4p.shp")
plot(mydat)

unnamed-chunk-1
但是,可以看出这样绘制的地图的形状有些扁平。这是因为,在绘图的过程中,默认把经度和纬度作为普通数据,均匀平等对待,绘制在笛卡尔坐标系上造成的。其实,地球的球面图形如何映射到平面图上,在地理学上是有一系列不同的专业算法的。地图不应该画在普通的笛卡尔坐标系上,而是要画在地理学专业的坐标系上。在这一点上,R的ggplot2包提供了专门的coord_map()函数。所以推荐R的ggplot2包来绘制地图。

library(ggplot2)
mymap = ggplot(data = fortify(mydat)) +
    geom_polygon(aes(x = long, y = lat, group = id), colour = "black",
                 fill = NA) +
    theme_grey()
print(mymap + coord_map())

unnamed-chunk-2
这次中国地图的形状与百度地图一样了。 继续阅读R绘制中国地图,并展示流行病学数据

COS访谈第九期:Hadley Wickham

 

【COS编辑部按】受访者: Hadley Wickham             采访人:YiXuan

简介:Hadley Wickham 是 RStudio 的首席科学家以及 Rice University 统计系的助理教授。他是著名图形可视化软件包 ggplot2 的开发者,以及其他许多被广泛使用的软件包的作者,代表作品如 plyrreshape2 等。

写在前面的话: 2013年9月13日小编(Yixuan)对他(Hadley)进行了一次简短的采访,谈及了他在图形可视化、数据整理和R编程等诸多方面的工作。

 

继续阅读COS访谈第九期:Hadley Wickham