基因组数据绘图ggplot2绘图【康华同学】:优秀生物信息学博客

截断图学习笔记

2022-02-08  本文已影响0人  小杜的生信筆記

date:2022.2.8

小杜的生信筆記

视频教程:
R语言绘制精美漂亮截断图教程 | 代码重复 | (收藏篇)


学习网址:Set Axis Break for ggplot2 (r-project.org)


01. 绘图重点

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的分析和可视化(包括数据分析,图形绘制等);分享感兴趣的文献和学习资料!

上一篇下一篇

猜你喜欢

热点阅读