rm(list = ls())
library(ggplot2)
library(ggbreak) 
## ggbreak v0.0.8
## 
## If you use ggbreak in published research, please cite the following paper:
## 
## S Xu, M Chen, T Feng, L Zhan, L Zhou, G Yu. Use ggbreak to effectively utilize plotting space to deal with large datasets and outliers. Frontiers in Genetics. 2021, 12:774846. doi: 10.3389/fgene.2021.774846
library(patchwork)
#install.packages("ggbreak")
###################################
set.seed(2022)
d <- data.frame(x = 1:10,
                y = c(rnorm(3) + 4, rnorm(2) + 20, rnorm(2) + 5, rnorm(3) + 22)
)
d
##     x         y
## 1   1  4.900142
## 2   2  2.826654
## 3   3  3.102515
## 4   4 18.555499
## 5   5 19.668986
## 6   6  2.099371
## 7   7  3.940744
## 8   8 22.277955
## 9   9 22.749486
## 10 10 22.241583
p1 <- ggplot(d, aes(y, x)) + geom_col(orientation="y")
p1

p1 + scale_x_break(c(7, 17), space=1) 

p <- ggplot(d, aes(x, y)) + geom_col()
p

p + scale_y_cut(breaks=c(6, 18), which=c(1, 3), scales=c(3, 1), space=1)