平时我们在科研绘图的时候,往往会遇到数据大小不一致的问题。
如下图所示,前几列数据由于太小,很容易被后面的数据压扁,显示出来不美观,不直观。
那么我们需要进行调整,将纵坐标进行截断。将有差距的部分进行截断,就可以更好的展示数据。如下图所示:经过调整后的图形,前面几列较小的数值就被放大了,更好的了数据。
[软件]:R (4.1.2)
1.首先我们打开R语言软件,加载所需要的R包,然后做一组数据出来,用来进行绘图使用
# 加载需要的包
library(tidyverse)
library(ggbreak)
# 创建一个数据框出来
data <- data.frame(
a = c(1,2,3,4,5),
b = c(2.2,2.3,20.1,30.2,32.5)
)
2.使用ggplot包进行绘图,基础图形
ggplot(data,aes(a,b,fill=factor(a)))+
geom_bar(stat="identity")+
theme(legend.position = "none",
text = element_text(size=15,family = "Arial"))+
labs(x = "xlab", y= "ylab")
3.使用scale_y_break()进行y轴截断
ggplot(data,aes(a,b,fill=factor(a)))+
geom_bar(stat="identity")+
theme(legend.position = "none",
text = element_text(size=15,family = "Arial"))+
labs(x = "xlab", y= "ylab")+
scale_y_break(breaks =c(3,20))
4.使用scales="free"可以调整图形,使得截断后的y轴上下相等
ggplot(data,aes(a,b,fill=factor(a)))+
geom_bar(stat="identity")+
theme(legend.position = "none",
text = element_text(size=15,family = "Arial"))+
labs(x = "xlab", y= "ylab")+
scale_y_break(breaks =c(3,20),
scales = "free")
5.使用space=1,可以进行调整截断之间的举例
ggplot(data,aes(a,b,fill=factor(a)))+
geom_bar(stat="identity")+
theme(legend.position = "none",
text = element_text(size=15,family = "Arial"))+
labs(x = "xlab", y= "ylab")+
scale_y_break(breaks =c(3,20),
space = 1)
6.或者这样
7.学会了么,赶紧来试试吧