date:2022.2.8
小杜的生信筆記
视频教程:
R语言绘制精美漂亮截断图教程 | 代码重复 | (收藏篇)
学习网址:Set Axis Break for ggplot2 (r-project.org)
01. 绘图重点
1)你想要绘制的图形是什么类型
2)数据准备
3)基础图形的绘制
4)图形的美化
5)图形中体系布局的把控
02 教程小例子
导入相关的R包
## 导入R包
library(ggplot2)
library(ggbreak)
library(patchwork)
# 下载你所需要的R包
# install.packages("")
# BiocManager::install("")
###
导入数据
setwd("D:\\小杜的生信筆記\\截断图绘制")
df <- read.table("inut.data.txt", header = T)
head(df)
本教程使用的随机数据
d <- data.frame(x = 1:20,
y = c(rnorm(5) + 4, rnorm(5) + 20, rnorm(5) + 5, rnorm(5) + 22)
)
head(d)
> head(d)
x y
1 1 3.423056
2 2 5.148453
3 3 4.596218
4 4 4.641941
5 5 4.902195
6 6 20.323737
基础图形的绘制
p1 <- ggplot(d, aes(y, x)) + geom_col(orientation="y")
图形的调整,截断
## 在图形中随意位置加入你想要加入的字符,或标记
d2 <- data.frame(x = c(2, 18), y = c(7, 26), label = c("hello", "world"))
##
p2 <- p1 + scale_x_break(c(7,17))+ ## 截断x轴
# scale_y_break(c("输入你的坐标")) ## 截断y轴
geom_text(aes(y, x, label = label), data = d2,
hjust = 1,
colour = 'firebrick')+
labs(y = "Time", x = "Expression level")+
theme_classic() ## 设置主题
# scale_fill_brewer(palette = "Accent") ## 设置颜色
### 第二次截断
p2 + scale_x_break(c(18,21))
### 第三次截断 ,第四次截断..........................
## 建议:截断图,最好只截断一次
注意:建议:截断图,最好只截断一次
03. 竖着的柱状图-截断例子
ggplot(d , aes(x,y))+ geom_col()+ #基础图形绘制
scale_y_break(c(7,12), scales = 1.5)+
scale_y_break(c(18,21),scales = 2)+
# scale_y_reverse()
labs(fill = "Time(h)",x = "", y = "Expression level")+
theme(text = element_text(size=12))+
## 更改横纵坐标轴中的字体颜色、大小
theme(axis.text.x = element_text(color = "black",size = 10),
axis.text.y = element_text(color = "black",size = 10))
04. 截断图中级篇
# 01. 准备 *****
# 02. 图形绘制
# 03. 图形美化
# 04. 图中字体大小更改美化
数据准备
d <- data.frame(
x = 1:20,
y = c(rnorm(5) + 4, rnorm(5) + 20, rnorm(5) + 5, rnorm(5) + 22),
group = c(rep("A", 10), rep("B", 10)),
face=c(rep("C", 5), rep("D", 5), rep("E", 5), rep("F", 5))
)
## 查看数据
head(d)
dim(d)
> head(d)
x y group face
1 1 3.809619 A C
2 2 1.729871 A C
3 3 3.031275 A C
4 4 5.819765 A C
5 5 3.860474 A C
6 6 20.886914 A D
> dim(d)
[1] 20 4
基础图形的绘制
p <- ggplot(d, aes(x = x, y = y))+
geom_col(orientation = "x")+ ##参数:orientation = "":t图形需要从哪一个参数进行转变
scale_y_reverse()+
facet_wrap(group~.,
scales="free_y",
strip.position="right",
nrow=2)+
coord_flip() ## 顺时针旋转90
截断x轴中的图形
p2 <- p+scale_y_break(c(7,17),scales = "free")
给图形添加颜色
p2 + aes(fill =group)+ theme(legend.position = "bottom")+
theme_classic()+
scale_fill_brewer(palette = "Accent")
require(ggplot2)
library(ggbreak)
set.seed(2019-01-19)
d <- data.frame(
x = 1:20,
y = c(rnorm(5) + 4, rnorm(5) + 20, rnorm(5) + 5, rnorm(5) + 22),
group = c(rep("A", 10), rep("B", 10))
)
p <- ggplot(d, aes(x=x, y=y)) +
scale_y_reverse() +
scale_x_reverse() +
geom_col(aes(fill=group)) +
scale_fill_manual(values=c("#00AED7", "#009E73")) +
facet_wrap(
group~.,
scales="free_y",
strip.position="right",
nrow=2
) +
coord_flip()
p +
scale_y_break(c(7, 10), scales=0.5, ticklabels=c(10, 11.5, 13)) +
scale_y_break(c(13, 17), scales=0.5, ticklabels=c(17, 18, 19)) +
scale_y_break(c(19,21), scales=1, ticklabels=c(21, 22, 23))
“小杜的生信筆記”公众号、知乎、简书平台,主要发表或收录生物信息学的教程,以及基于R的分析和可视化(包括数据分析,图形绘制等);分享感兴趣的文献和学习资料!