优秀的编程知识分享平台

网站首页 > 技术文章 正文

截断y轴到底有多容易?——R语言绘图技巧

nanyue 2024-08-14 20:31:42 技术文章 7 ℃

背景介绍

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

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

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

软件介绍

[软件]:R (4.1.2)

[软件]:RStudio(2022.02.0)

绘图介绍

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.学会了么,赶紧来试试吧

Tags:

最近发表
标签列表