数据可视化——一文入门ggplot2

0引言

之前在R语言分组画条形图一文中使用过ggplot2包中的qplot函数,今天就简单介绍下ggplot2的语法风格和使用示例。ggplot2这个函数包是R语言的一款可视化包。他的作者是Hadley Wickham,RStudio首席科学家,美国莱斯大学统计学助理教授,毕业于爱荷华州立大学统计系。这个包具有独树一帜的画图风格:映射、分面、集合对象、统计变换、坐标系、图层等等众多系统的画图的风格。不吹不黑直接上干货,本文将会带领大家入门ggplot2,让大家设计出符合自己的数据的可视化作品。

1、函数包的安装与载入

我一般习惯的安装包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 来建造的 

2、数据的构造

画图离不开一个数据,这部分构造一个可用的数据。

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"

3、映射和代码风格

先介绍ggplot函数,这个函数负责打开一个画板,参数data接受数据和参数mapping接受变量的映射。直接运行打开下面画布。

p <- ggplot(data = Data, mapping = aes(x = x, y = y))
p

画板
注意: ggplot2的语法是使用+链接的。+一定位于每一行代码的结尾不能用作开头。不然会产生报错。下面我们向画板加入几何图形。ggplot2具有八种画图风格主题这里入门就不再展示代码。

4、添加几何对象

哎呀终于可以添加图像了。一般的几何对象的格式是:geom_几何对象

4.1添加单个几何对象

简单的添加点或者线:

p + geom_point()  # 添加点对象
p + geom_smooth()  # 添加线对象

在这里插入图片描述
在这里插入图片描述

4.2 分类设置颜色、形状、大小

从数据构造时可以看到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)) # 分类添加规模

在这里插入图片描述

4.3设置整体的颜色形状大小

添加每一个单个几何对象时,需要设置单独对图片的几何对象设置颜色形状大小,平行于mapping参数之外也是有这些参数的。下面是使用方式。

p + geom_point(colour = "red")

在这里插入图片描述

p + geom_point(shape = 2)

在这里插入图片描述

p + geom_point(size = 4)

在这里插入图片描述

4.4添加多个几何对象

ggplot2图的语法是通过+逐渐向图片上添加图像。也就意味着只要你愿意,就可以同时添加多个几何对象。如下代码同时添加点和线:

p + geom_smooth(aes(col = class)) + 
    geom_point(mapping = aes(color = class)) 

在这里插入图片描述

5、分层

最后介绍一下ggplot2的分层函数facet_wrap

p + geom_smooth(aes(col = class)) + 
    geom_point(mapping = aes(color = class)) +
    facet_wrap(~ class, nrow = 2)

在这里插入图片描述

6、总结

读到这里大家应该对ggplot2包有一定的了解,也可以使用里面的函数画一些常见的统计图形了。关于ggplot2的其他知识下次介绍。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

统计学小王子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值