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行
想了解更多关于该数据集的信息的话,直接加问号 ?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"
)
# (2) 箱图
boxplot(Sepal.Length ~ Species, data = iris,
ylab = "Sepal.Length",
frame = FALSE, col = "lightgray")
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
)
如果我们想依据种类信息分别绘制,则可使用以下格式 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
)
6
用ggplot2创建图形
如果我们想用ggplot2绘制一个散点图的话
library(ggplot2)
ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width))+
geom_point()
# 改变点的尺寸、形状、颜色
ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width))+
geom_point(size = 1.2, color = "steelblue", shape = 21)
想查看有哪些形状,运行以下代码即可:
ggpubr::show_point_shapes()
# 以分组为依据改变点的形状
ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width))+
geom_point(aes(color = Species, shape = Species))
# 自定义颜色
ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width))+
geom_point(aes(color = Species, shape = Species))+
scale_color_manual(values = c("#00AFBB", "#E7B800", "#FC4E07"))
或者和上边一样,我们以物种名为依据进行分组绘制
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"))
绘图参数说明
• 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")
# 我们想比较的变量名称
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")
结束语
下篇文章将会讲到怎样把示例数据导出到excel以便我们参考,以及图片的保存及处理方法,敬请期待~
如果您不想错过“生态R学社”的文章,请务必进行以下操作: