0%

生信学习笔记01——ggplot绘图(1)

从头开始学一遍生信基础知识,记录一下过程,希望和看到的你一起提高

准备工作

#设置清华镜像
options("repos"=c(CRAN="http://mirrors.tuna.tsinghua.edu.cn/CRAN/")
#安装R包
if(!require(ggplot2))install.packages('ggplot2',update = F,ask = F)
if(!require(ggpubr))install.packages('ggpubr',update = F,ask = F)
if(!require(eoffice))install.packages("eoffice",update = F,ask = F)
if(!require(patchwork))install.packages("patchwork",update = F,ask = F)

出现了一个报错,发现是一个rlang的包版本不对,重新安装后顺利加载

# Error: package or namespace load failed for ‘eoffice’ in loadNamespace(i, c(lib.loc, .libPaths()), versionCheck = vI[[i]]):
 载入了名字空间‘rlang’ 0.4.12,但需要的是>= 1.0.1
install.packages("rlang")

绘图

绘图函数可以分为高级和低级绘图函数,互为补充

  • plot
  • ggplot
  • ggpubr(美化版本)

入门级绘图模板

基本格式如下所示,展示内置的iris数据中,绘制以xy参数的散点图

ggplot(data = iris)+
  geom_point(mapping = aes(x = Sepal.Length,
                           y = Petal.Length))  

属性的设置

属性的设置需要设置为该类中有意义的值

属性参数
颜色color
大小size
形状shape
透明度alpha
填充颜色fill
shape的形状如下所示,可以直接引用相关的数字

ggplot-shape

#设置颜色为蓝色
ggplot(data = iris) + 
  geom_point(mapping = aes(x = Sepal.Length,
                           y = Petal.Length), 
             color = "blue")
#继续调整点大小,透明度,形状
ggplot(data = iris) + 
  geom_point(mapping = aes(x = Sepal.Length, y = Petal.Length), 
             size = 5,     # 点的大小5mm
             alpha = 0.5,  # 透明度 50%
             shape = 8)  # 点的形状

映射

按照数据框的某一列定义属性

#注意在aes函数之内定义了颜色,参数是列名,而不是具体颜色
ggplot(data = iris)+
  geom_point(mapping = aes(x = Sepal.Length,
                           y = Petal.Length,
                           color = Species))
#规定具体颜色
+ scale_color_manual(values = c("blue","grey","red"))

分面

#按照Species分成三个图并拼接
ggplot(data = iris) + 
  geom_point(mapping = aes(x = Sepal.Length, y = Petal.Length)) + 
  facet_wrap(~ Species) 

#双分面
dat = iris
dat$Group = sample(letters[1:5],150,replace = T)  #加入一个为group的列名
#sample 抽样,letters是内置向量,选取前5个,replace=t为可放完的抽样
ggplot(data = dat) + 
  geom_point(mapping = aes(x = Sepal.Length, y = Petal.Length)) + 
  facet_grid(Group ~ Species) 

小作业

练习6.1

#1.根据给出数据,以AB为横纵坐标,change映射颜色,绘制散点图
ggplot(data = test)+
  geom_point(mapping = aes(x = a,
                           y = b,
                           color = change))
#2.绘制蓝灰红色图
ggplot(data = test)+
  geom_point(mapping = aes(x = a,
                           y = b,
                           color = change))+
  scale_color_manual(values = c("blue","grey","red")) 

#如何根据变量自定义颜色
1.查看所有变量名字
unique(test$change)   #[1] "up"     "down"   "stable"
2.定义每个变量的颜色
uni_color = c("blue","grey","red")
names(uni_color)= c("up","down","stable")
uni_color 
--  up   down stable 
--"blue" "grey"  "red"
3.重新绘制
ggplot(data = test)+
  geom_point(mapping = aes(x = a,
                           y = b,
                           color = change))+
  scale_color_manual(values = uni_color)