作者:严涛 浙江大学作物遗传育种在读研究生(生物信息学方向)伪码农,R语言爱好者,爱开源
又到了亲爱的严涛老师时间: 诺奖文章里面的动图绘制教程来了! !R包ggseqlogo |绘制序列分析图 ggplot2高效实用指南 (可视化脚本、工具、套路、配色) ComplexHeatmap |理解绘图逻辑绘制热图R语言可视化学习笔记之ggridges包简介
R语言基本绘图函数中可以利用par()以及layout()来进行图形排列,但是这两个函数对于ggplot图则不太适用,本文主要讲解如何对多ggplot图形多页面进行排列。主要讲解如何利用包gridExtra、cowplot以及ggpubr中的函数进行图形排列。
绘制图形
#load packages
library(gridExtra)
library(cowplot)
library(ggpubr)
#dataset ToothGrowth and mtcars
mtcars$name mtcars$cyl head(mtcars[, c("name", "wt","mpg", "cyl")])
#First let's create some plots
#Box plot(bxp)
bxp #Dot plot(dp)
dp #An ordered Bar plot(bp)
bp color="white", #Set bar border colors to white
palette = "jco", #jco jourbal color palette
sort.val = "asc", #Sort the value in ascending order
sort.by.groups = TRUE, #Sort inside each group
x.text.angle=90 #Rotate vertically x axis texts )
bp+font("x.text", size = 8)
#Scatter plots(sp)
sp conf.int = TRUE, #Add confidence interval
color = "cyl", palette = "jco",#Color by group cyl
shape = "cyl" #Change point shape by groups cyl
)+
stat_cor(aes(color=cyl), label.x = 3) #Add correlation coefficientsp
图形排列
多幅图形排列于一面
ggpubr::ggarrange()
ggarrange(bxp, dp, bp+rremove("x.text"), labels = c("A", "B", "C"), ncol = 2, nrow = 2)
cowplot::plot.grid()
plot_grid(bxp, dp, bp+rremove("x.text"), labels = c("A", "B", "C"), ncol = 2, nrow = 2)
gridExtra::grid.arrange()
grid.arrange(bxp, dp, bp+rremove("x.text"), ncol=2, nrow=2)
排列图形注释
ggpubr::annotate_figure()figure annotate_figure(figure, top=text_grob("Visualizing mpg", color = "red",
face = "bold", size=14), bottom = text_grob("Data source:\n mtcars data set",
color = "blue", hjust = 1, x=1, face = "italic", size=10), left = text_grob("Figure arranged using ggpubr", color = "green", rot = 90),
right = "I'm done, thanks :-)!", fig.lab = "Figure 1", fig.lab.face = "bold")
绘图面板对齐
绘制生存曲线
library(survival)
head(colon[, c(1:4)])