当前位置:   article > 正文

数据可视化——一文入门ggplot2_ggplot geom_smooth

ggplot geom_smooth

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 来建造的 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

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)  # 生成数据框
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

下面查看下数据和类型。

>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"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

3、映射和代码风格

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

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

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

4、添加几何对象

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

4.1添加单个几何对象

简单的添加点或者线:

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

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

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))
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述

p + geom_point(mapping = aes(shape = class))#分类添加形状
  • 1

在这里插入图片描述

p + geom_point(mapping = aes(size = class)) # 分类添加规模
  • 1

在这里插入图片描述

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

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

p + geom_point(colour = "red")
  • 1

在这里插入图片描述

p + geom_point(shape = 2)
  • 1

在这里插入图片描述

p + geom_point(size = 4)
  • 1

在这里插入图片描述

4.4添加多个几何对象

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

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

在这里插入图片描述

5、分层

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

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

在这里插入图片描述

6、总结

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/181964
推荐阅读
相关标签
  

闽ICP备14008679号