科研星球

R语言绘制截断y轴图

平时我们在科研绘图的时候,往往会遇到数据大小不一致的问题。

如下图所示,前几列数据由于太小,很容易被后面的数据压扁,显示出来不美观,不直观。

0 (3).png

那么我们需要进行调整,将纵坐标进行截断。将有差距的部分进行截断,就可以更好的展示数据。如下图所示:经过调整后的图形,前面几列较小的数值就被放大了,更好的了数据。

0 (4).png


[软件]: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)
)

0 (2).png

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")

0 (3).png

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))

0 (4).png

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")

0.png

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)

0 (1).png

6.或者这样

0 (5).png

7.学会了么,赶紧来试试吧


没有账号?