R ggplot2 x轴打断

R ggplot2 x轴打断,r,graph,ggplot2,axis,R,Graph,Ggplot2,Axis,我试图用ggplot生成一个散点图,它有一个连续的x轴,但在两个点之间有一个巨大的时间间隔。时间点是20、40、60、90、120、500、520。它们需要是连续的,因为我希望缩放前5个值,但我希望轴在120和500之间有一个中断。我知道轴断裂的问题更普遍,(),但我的问题是指x轴而不是y轴 示例数据 EG.df <- data.frame(AGE = c(20, 20, 40, 40, 60, 60, 90, 90, 120, 120, 500, 500, 520, 520),

我试图用ggplot生成一个散点图,它有一个连续的x轴,但在两个点之间有一个巨大的时间间隔。时间点是20、40、60、90、120、500、520。它们需要是连续的,因为我希望缩放前5个值,但我希望轴在120和500之间有一个中断。我知道轴断裂的问题更普遍,(),但我的问题是指x轴而不是y轴

示例数据

EG.df <- data.frame(AGE = c(20, 20, 40, 40, 60, 60, 90, 90, 120, 120, 500, 500, 520, 520),
                     S1 = c(28, 30, 21, 15, 18, 19, 18, 21, 16, 17, 21, 21, 19, 13))

ggplot(EG.df, aes(x=AGE, y=S1)) +
  geom_point(size=10)

EG.df这里仅使用
ggplot2
就可以快速尝试一下。我使用的是
dplyr
仅用于操作,因此实际上并不需要

我们首先将数据分解为要绘制的部分。这可能可以使用数据自动完成,但在这里我手动设置切割。关键是创建两个组(拆分前/拆分后)

现在,因为你有一个数据点,你想削减我使用过滤器,以不显示这方面的差距。感觉不太干净

EG.df <- EG.df %>% 
  mutate(cut = cut(AGE, breaks = c(0,120,500,600))) %>%
  filter(cut != "(120,500]")

我保持了点数的大小不变。您可以通过添加主题来删除条带

theme(
    strip.text.x = element_blank(),
    strip.background = element_blank())
您会注意到,两个轴标签相互切割。我将把它作为一个练习留给读者来固定轴

theme(
    strip.text.x = element_blank(),
    strip.background = element_blank())