赞
踩
之前在R语言分组画条形图一文中使用过ggplot2包中的qplot函数,今天就简单介绍下ggplot2的语法风格和使用示例。ggplot2这个函数包是R语言的一款可视化包。他的作者是Hadley Wickham,RStudio首席科学家,美国莱斯大学统计学助理教授,毕业于爱荷华州立大学统计系。这个包具有独树一帜的画图风格:映射、分面、集合对象、统计变换、坐标系、图层等等众多系统的画图的风格。不吹不黑直接上干货,本文将会带领大家入门ggplot2,让大家设计出符合自己的数据的可视化作品。
我一般习惯的安装包tidyverse
,里面函数有包:tidyverse、ggplot2、tidyr、readr、forcats
。下面是安装载入命令:
# 包的安装
install.packages("tidyverse")
library(tidyverse) # 加载画图包
-- Attaching packages ------------------------------------ tidyverse 1.3.0 --
√ ggplot2 3.3.0 √ purrr 0.3.3
√ tibble 2.1.3 √ dplyr 0.8.4
√ tidyr 1.0.2 √ stringr 1.4.0
√ readr 1.3.1 √ forcats 0.5.0
-- Conflicts --------------------------------------- tidyverse_conflicts() --
x dplyr::filter() masks stats::filter()
x dplyr::lag() masks stats::lag()
Warning messages:
1: 程辑包‘tidyverse’是用R版本3.6.3 来建造的
2: 程辑包‘ggplot2’是用R版本3.6.3 来建造的
3: 程辑包‘tidyr’是用R版本3.6.3 来建造的
4: 程辑包‘readr’是用R版本3.6.3 来建造的
5: 程辑包‘forcats’是用R版本3.6.3 来建造的
画图离不开一个数据,这部分构造一个可用的数据。
n = 100 # 数据的规格
x <- runif(n, 0, 4) # 使用均匀分布构造x变量
y <- x^2 - x + rnorm(n, 0, 0.4) # 确定的函数关系加正态分布的扰动项
MyClass <- factor((x>0) + (x>1) + (x>2) + (x>3),
labels = c("0-1", "1-2", "2-3", "3-4")) # 构造数据的类
Data <- data.frame(x = x, y = y, class = MyClass) # 生成数据框
下面查看下数据和类型。
>head(Data) # 显示数据的前6行
x y class
1 0.3640009 -0.03226906 0-1
2 3.1815743 7.14417386 3-4
3 1.2577843 0.45158761 1-2
4 2.2579793 2.81405885 2-3
5 0.1885128 0.22455903 0-1
6 0.8033352 0.01986735 0-1
> str(Data)
'data.frame': 100 obs. of 3 variables:
$ x : num 0.364 3.182 1.258 2.258 0.189 ...
$ y : num -0.0323 7.1442 0.4516 2.8141 0.2246 ...
$ class: Factor w/ 4 levels "0-1","1-2","2-3",..: 1 4 2 3 1 1 2 4 4 3 ...
> class(Data)
[1] "data.frame"
先介绍ggplot
函数,这个函数负责打开一个画板,参数data
接受数据和参数mapping
接受变量的映射。直接运行打开下面画布。
p <- ggplot(data = Data, mapping = aes(x = x, y = y))
p
注意: ggplot2的语法是使用+
链接的。+
一定位于每一行代码的结尾不能用作开头。不然会产生报错。下面我们向画板加入几何图形。ggplot2具有八种画图风格主题这里入门就不再展示代码。
哎呀终于可以添加图像了。一般的几何对象的格式是:geom_几何对象
。
简单的添加点或者线:
p + geom_point() # 添加点对象
p + geom_smooth() # 添加线对象
从数据构造时可以看到class
的数据类型是因子。先分类添加颜色。函数geom_几何图形
的参数也是有映射mapping
参数的。添加颜色是可以同时识别col、color、colour
三个参数,都是颜色的意思。即下面的代码表表示一个意思。
根据类class添加颜色区分不同的类
p + geom_point(mapping = aes(color = class))
p + geom_point(mapping = aes(colour = class))
p + geom_point(mapping = aes(col = class))
p + geom_point(mapping = aes(shape = class))#分类添加形状
p + geom_point(mapping = aes(size = class)) # 分类添加规模
添加每一个单个几何对象时,需要设置单独对图片的几何对象设置颜色形状大小,平行于mapping
参数之外也是有这些参数的。下面是使用方式。
p + geom_point(colour = "red")
p + geom_point(shape = 2)
p + geom_point(size = 4)
ggplot2图的语法是通过+
逐渐向图片上添加图像。也就意味着只要你愿意,就可以同时添加多个几何对象。如下代码同时添加点和线:
p + geom_smooth(aes(col = class)) +
geom_point(mapping = aes(color = class))
最后介绍一下ggplot2的分层函数facet_wrap
。
p + geom_smooth(aes(col = class)) +
geom_point(mapping = aes(color = class)) +
facet_wrap(~ class, nrow = 2)
读到这里大家应该对ggplot2包有一定的了解,也可以使用里面的函数画一些常见的统计图形了。关于ggplot2的其他知识下次介绍。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。