各种各样的统计 模型等
将数据用图的形式展示出来,更直观更吸引人。散点图 折线图 柱形图等 ggplot2
功能强大 ,基本上我们想到的统计分析方法 和做图方法 都能够实现;还有一个优势是能够记录从原始数据到最终结果的一个过程
明确一个想法 R语言不难,不要把他当成编程语言来学,他就是一个普通的数据处理软件,如果需求是满足科研数据处理和数据可视化,完全不需要动脑筋,就是多用;熟悉就好。
开源软件,直接到官网下载安装包安装即可
1 R语言不要安装最新版,可以安装比最新版稍微第一个版本的R,比如现在R应该是到4.2了,我们可以安装4.1版本的R,Rstudio无所谓,直接安装最新版就可以
2 如果自己电脑上的用户名是中文,可以先在电脑上增加一个用户,在新用户下安装R
可以理解为手机的app,安装好R语言就相当于是买了一台新手机
1 install.package("packagename") 大部分R包都是这种
可以理解为去应用商店安装 (最常用)
2
devtools::install_github("username/packagename")
3 BiocManager::install('packagename')
4 本地安装
告诉计算机你要干什么的语句(计算机能够理解的语言):比如告诉计算机求和 sum() 求平均mean()
x1<-c(1,2,3,4,5)
sum(x=x1)## [1] 15
mean(x=x1)## [1] 3
和数学上函数的概念有些不一样
函数都是来自于R包,要使用函数首先要知道这个函数来源于哪个R包,加载这个R包才能够用这个函数
有些函数可以直接使用是因为R语言启动以后会默认加载一些R包
函数里调节细节的命令
函数是告诉计算机干什么 参数就是告诉计算机细节怎么干
比如可以告诉计算机 吃饭() 吃饭就是一个函数
计算机这个时候可能默认去用手抓一个包子吃,接下来可以告诉他
吃饭(工具=“筷子”,吃什么=“米饭”)
数据文件在电脑上存储的位置
"D:/R_4_1_0_working_directory/env001/abc.txt"
读取excel数据用readxl这个R包,不是R语言自带,需要安装
install.packages("readxl")
最基本的数据格式需要一列x和一列y
行是样本 列是变量
数值可以相加减 做数学运算
文本不能做数学运算,默认按照首字母排序
ggplot2也不是R语言自带的R包,第一次使用需要安装
install.packages("ggplot2")
library(readxl)
dat01<-read_excel("D:/R_4_1_0_working_directory/env001/Rpub/20220617/data/example01.xlsx")
dat01## # A tibble: 4 x 2
## var1 var2
## <dbl> <dbl>
## 1 1 2
## 2 2 2
## 3 3 3
## 4 4 3
固定套路是
第一行代码指定数据集ggplot(data=dat01,aes(x=var1,y=var2)),第二行代叠加要做什么图的函数
library(ggplot2)## Warning: package 'ggplot2' was built under R version 4.0.5
ggplot(data=dat01,aes(x=var1,y=var2))+
geom_point()初步的图就做好了,接下来就是调整细节
坐标轴以内的区域 通常直接在作图函数里更改,比如散点图的点 可以更改大小 颜色 形状等等
library(ggplot2)
ggplot(data=dat01,aes(x=var1,y=var2))+
geom_point(color="red",size=10,shape=17)以上是对所有的点进行统一更改,在参数=后 加具体的参数值
如果数据集有分组,需要现在数据集中增加一列分组信息
library(readxl)
dat02<-read_excel("D:/R_4_1_0_working_directory/env001/Rpub/20220617/data/example02.xlsx")
dat02## # A tibble: 4 x 3
## var1 var2 group
## <dbl> <dbl> <chr>
## 1 1 2 ctl
## 2 2 2 ctl
## 3 3 3 trt
## 4 4 3 trt
library(ggplot2)
ggplot(data=dat02,aes(x=var1,y=var2))+
geom_point(aes(color=group,shape=group),size=10)这个时候需要把参数写到aes()里面,参数值跟的是数据集里的列名
默认的会根据分组生成配色和形状,如果觉得不好看可以手动更改,需要用到scale_系列函数
library(readxl)
dat02<-read_excel("D:/R_4_1_0_working_directory/env001/Rpub/20220617/data/example02.xlsx")
dat02## # A tibble: 4 x 3
## var1 var2 group
## <dbl> <dbl> <chr>
## 1 1 2 ctl
## 2 2 2 ctl
## 3 3 3 trt
## 4 4 3 trt
library(ggplot2)
ggplot(data=dat02,aes(x=var1,y=var2))+
geom_point(aes(color=group,shape=group),size=10)+
scale_color_manual(values = c("ctl"="red","trt"="blue"))+
scale_shape_manual(values = c("ctl"=15,"trt"=18))接下来是调整坐标轴,还是scale_系列函数,分x,y,分离散discrete和连续continues 坐标轴主要是截断 范围 文本标签
library(readxl)
dat02<-read_excel("D:/R_4_1_0_working_directory/env001/Rpub/20220617/data/example02.xlsx")
dat02## # A tibble: 4 x 3
## var1 var2 group
## <dbl> <dbl> <chr>
## 1 1 2 ctl
## 2 2 2 ctl
## 3 3 3 trt
## 4 4 3 trt
library(ggplot2)
ggplot(data=dat02,aes(x=var1,y=var2))+
geom_point(aes(color=group,shape=group),size=10)+
scale_color_manual(values = c("ctl"="red","trt"="blue"))+
scale_shape_manual(values = c("ctl"=15,"trt"=18))+
scale_x_continuous(breaks = c(1.5,2.5,3.5),
labels = c("A","B","C"),
limits = c(0,5))接下来是调整坐标轴的标题
library(readxl)
dat02<-read_excel("D:/R_4_1_0_working_directory/env001/Rpub/20220617/data/example02.xlsx")
dat02## # A tibble: 4 x 3
## var1 var2 group
## <dbl> <dbl> <chr>
## 1 1 2 ctl
## 2 2 2 ctl
## 3 3 3 trt
## 4 4 3 trt
library(ggplot2)
ggplot(data=dat02,aes(x=var1,y=var2))+
geom_point(aes(color=group,shape=group),size=10)+
scale_color_manual(values = c("ctl"="red","trt"="blue"))+
scale_shape_manual(values = c("ctl"=15,"trt"=18))+
scale_x_continuous(breaks = c(1.5,2.5,3.5),
labels = c("A","B","C"),
limits = c(0,5))+
labs(x="AXIS x",y="AXIS y",title="TITLE",caption = "XiaoMing")接下来是调整主题,主题主要是 字体 对齐方式之类的
library(readxl)
dat02<-read_excel("D:/R_4_1_0_working_directory/env001/Rpub/20220617/data/example02.xlsx")
dat02## # A tibble: 4 x 3
## var1 var2 group
## <dbl> <dbl> <chr>
## 1 1 2 ctl
## 2 2 2 ctl
## 3 3 3 trt
## 4 4 3 trt
library(ggplot2)
ggplot(data=dat02,aes(x=var1,y=var2))+
geom_point(aes(color=group,shape=group),size=10)+
scale_color_manual(values = c("ctl"="red","trt"="blue"))+
scale_shape_manual(values = c("ctl"=15,"trt"=18))+
scale_x_continuous(breaks = c(1.5,2.5,3.5),
labels = c("A","B","C"),
limits = c(0,5))+
labs(x="AXIS x",y="AXIS y",title="TITLE",caption = "XiaoMing")+
theme(text = element_text(family = "serif"),
plot.title = element_text(hjust=0.5),
legend.position = "bottom")基本上整个图里能想到的地方都有对应的代码可以修改,如果实在想不起来如何用代码来修改的话,我们还可以把图导出到ppt里,每个元素都可以编辑,这里需要借助一个R包export https://github.com/tomwenseleers/export
library(readxl)
dat02<-read_excel("D:/R_4_1_0_working_directory/env001/Rpub/20220617/data/example02.xlsx")
dat02## # A tibble: 4 x 3
## var1 var2 group
## <dbl> <dbl> <chr>
## 1 1 2 ctl
## 2 2 2 ctl
## 3 3 3 trt
## 4 4 3 trt
library(ggplot2)
ggplot(data=dat02,aes(x=var1,y=var2))+
geom_point(aes(color=group,shape=group),size=10)+
scale_color_manual(values = c("ctl"="red","trt"="blue"))+
scale_shape_manual(values = c("ctl"=15,"trt"=18))+
scale_x_continuous(breaks = c(1.5,2.5,3.5),
labels = c("A","B","C"),
limits = c(0,5))+
scale_y_continuous(limits=c(1,5))+
labs(x="AXIS x",y="AXIS y",title="TITLE",caption = "XiaoMing")+
theme_bw()+
theme(text = element_text(family = "serif",size = 5),
plot.title = element_text(hjust=0.5),
legend.position = "bottom") -> p
print(p)export::graph2office(p,file = "rplot",type = "PPT",
width = 5,
height = 5)## Exported graph as rplot.pptx
export::graph2office(p,file = "rplot01",type = "DOC",
width = 5,
height = 5)## Exported graph as rplot01.docx
论文中有时候可能会一个主图,分别由很多个子图组合,R语言里也提供了很方便的组合图的函数,如果都是用ggplot2做的图,可以使用专门拼图的R包patchwork,这个也不是R语言自带的R包,第一次使用需要先安装
install.packages("patchwork")
library(readxl)
dat02<-read_excel("D:/R_4_1_0_working_directory/env001/Rpub/20220617/data/example02.xlsx")
dat02## # A tibble: 4 x 3
## var1 var2 group
## <dbl> <dbl> <chr>
## 1 1 2 ctl
## 2 2 2 ctl
## 3 3 3 trt
## 4 4 3 trt
library(ggplot2)
ggplot(data=dat02,aes(x=var1,y=var2))+
geom_point(aes(color=group,shape=group),size=10)+
scale_color_manual(values = c("ctl"="red","trt"="blue"))+
scale_shape_manual(values = c("ctl"=15,"trt"=18))+
scale_x_continuous(breaks = c(1.5,2.5,3.5),
labels = c("A","B","C"),
limits = c(0,5))+
scale_y_continuous(limits=c(1,5))+
labs(x="AXIS x",y="AXIS y",title="TITLE",caption = "XiaoMing") -> p1
p1 +
theme_bw() +
theme(text = element_text(family = "serif",size = 5),
plot.title = element_text(hjust=0.5),
legend.position = "bottom") -> p2
print(p1)print(p2)library(patchwork)
p1 + p2p1 + p2 +
plot_annotation(tag_levels = "A")+
plot_layout(guides = "collect")公众号分享的内容包括1、R语言和python做数据分析和数据可视化的简单小例子;2、园艺植物相关的转录组、基因组学文献阅读笔记;3、生物信息学入门相关知识,包括转录组学、群体基因组学等。4、目前也在学习宏基因组的相关知识,偶尔会推一些宏基因组的相关内容