vlambda博客
学习文章列表

R语言基础绘图前言——必看




前言




编号

包的名称

版本号

1

bookdown

0.5

2

changepoint

2.2.2

3

cowplot

0.8.0.9000

4

dplyr

0.7.4

5

factoextra

1.0.5.999

6

FactoMineR

1.38

7

GGally

1.3.0

8

ggcorrplot

0.1.1.9000

9

ggforce

0.1.1

10

strucchange

0.6

11

ggformula

0.4.1

12

ggfortify

0.2.15

13

ggpmisc

0.1.5.999

14

ggpubr

0.20-34

15

lattice

1.1.1

16

readr

0.3-40

17

scatterplot3d

1.5-1

1

运行教程需安装的R包


install.packages("tidyverse")

if(!require(devtools)) install.packages("devtools")
devtools::install_github("kassambara/ggpubr")

如果上述代码运行失败,你也可以直接运行一下代码进行安装

install.packages("ggpubr")


每次运行代码时务必调用一下R包:

library("ggplot2")
library("ggpubr")


调用之后我们就可以使用R包的功能,例如 ggscatter() 是ggpubr中的一个包来创建一个散点图

如果你想知道更多关于该包的示例及帮助,只需要在R中运行以下代码即可:

?ggscatter.  #触类旁通,问号后边也可以跟其他包的名称

2

关于绘图数据格式


       想要做出和例子一样的图形,就必须按照示例给出的数据格式排列自己的原始数据,本人一直秉承着实践是检验真理的唯一标准的宗旨,将会在后续实例中直接给出原始数据的排列方式等,以便大家模仿运行。

如何将数据导入R中

首先调用以下R包:

library("readr")
# 读取.txt文件或者.tab文件时

my_data <- read_tsv(file.choose())

# 读取.csv文件时
my_data <- read_csv(file.choose())

运行完以上代码后,系统便会弹出一个选择框,然后选择需导入的数据即可,如下

3

关于R中自带数据集


R中有许多自带数据集,我们最常用的示例数据集有两个,分别是 iris和mtcars,具体调用方式如下:

data("iris") # 调用该数据集
head(iris, n = 3) # 只显示前3行

R语言基础绘图前言——必看

想了解更多关于该数据集的信息的话,直接加问号     ?iris

4

用ggpubr创建图形


切入正题,我们用R来绘制两个图形

以iris数据集为例分别创建一个散点图、一个箱图

library("ggplot2")
library("ggpubr")

data("iris") # 调用该数据集

head(iris, n = 4) # 只显示前4行

# (1) 散点图
plot(
x = iris$Sepal.Length, y = iris$Sepal.Width,
pch = 19, cex = 0.8, frame = FALSE,
xlab = "Sepal Length",ylab = "Sepal Width"
)

R语言基础绘图前言——必看


# (2) 箱图
boxplot(Sepal.Length ~ Species, data = iris,
ylab = "Sepal.Length",
frame = FALSE, col = "lightgray")

R语言基础绘图前言——必看

5

用Lattice创建图形


关于Lattice包的使用方式,如果我们想创建一个X与Y关系的散点图,我们可以使用一下格式    y ~ x.     话不多说上例子:

library("lattice")
xyplot(
Sepal.Length ~ Petal.Length, group = Species,
data = iris, auto.key = TRUE, pch = 19, cex = 0.5
)

R语言基础绘图前言——必看

如果我们想依据种类信息分别绘制,则可使用以下格式 y ~ x | group   示例:

xyplot(

Sepal.Length ~ Petal.Length | Species,

layout = c(3, 1), # panel with ncol = 3 and nrow = 1

group = Species, data = iris,

type = c("p", "smooth"), # Show points and smoothed line

scales = "free" # Make panels axis scales independent

)

R语言基础绘图前言——必看

6

用ggplot2创建图形


如果我们想用ggplot2绘制一个散点图的话

library(ggplot2)
ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width))+
geom_point()

R语言基础绘图前言——必看


# 改变点的尺寸、形状、颜色
ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width))+
geom_point(size = 1.2, color = "steelblue", shape = 21)

 

R语言基础绘图前言——必看

想查看有哪些形状,运行以下代码即可:

ggpubr::show_point_shapes()

R语言基础绘图前言——必看


# 以分组为依据改变点的形状
ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width))+
geom_point(aes(color = Species, shape = Species))

R语言基础绘图前言——必看


# 自定义颜色
ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width))+
geom_point(aes(color = Species, shape = Species))+
scale_color_manual(values = c("#00AFBB", "#E7B800", "#FC4E07"))

 

R语言基础绘图前言——必看

或者和上边一样,我们以物种名为依据进行分组绘制

ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width))+
geom_point(aes(color = Species))+
geom_smooth(aes(color = Species, fill = Species))+
facet_wrap(~Species, ncol = 3, nrow = 1)+
scale_color_manual(values = c("#00AFBB", "#E7B800", "#FC4E07"))+
scale_fill_manual(values = c("#00AFBB", "#E7B800", "#FC4E07"))

R语言基础绘图前言——必看


绘图参数说明

• pch: 改变图形的形状 1-25分别代表不同的形状,例如:plot(data,pch=6)
• cex: 改变点的大小 例如: cex = 0.8.
• col: 改变点的颜色 例如: col = “blue”.
• frame: 逻辑数值. frame = FALSE 移除非逻辑数值
• main, xlab, ylab. 图标名称、x轴、y轴名称

• las: 界定向量值的大小,  las = 2

7

来点儿好看的图吧


library(ggpubr)

ggdensity(iris, x = "Sepal.Length",

add = "mean", rug = TRUE,

color = "Species", fill = "Species",

palette = "jco")

R语言基础绘图前言——必看


# 我们想比较的变量名称
my_comparisons <- list(
c("setosa", "versicolor"), c("versicolor", "virginica"),
c("setosa", "virginica")
)
ggboxplot(
iris, x = "Species", y = "Sepal.Length",
color = "Species", palette = c("#00AFBB", "#E7B800", "#FC4E07"),
add = "jitter"
)+
stat_compare_means(comparisons = my_comparisons, method = "t.test")

 

R语言基础绘图前言——必看


结束语

下篇文章将会讲到怎样把示例数据导出到excel以便我们参考,以及图片的保存及处理方法,敬请期待~

如果您不想错过“生态R学社”的文章,请务必进行以下操作: