我想要创建一个自定义轴勾距的图形。我想要达到的目标类似于这个阴谋:

我可以使用断点参数指定轴勾点位置,但不能更改它们之间的距离。
dat <- data.frame(x = runif(100), y = runif(100))
ggplot(dat, aes(x,y)) + geom_point() + scale_x_continuous(breaks=c(0,0.1,0.2,0.4,0.8,1)) + scale_y_continuous(breaks=c(0,0.1,0.2,0.4,0.8,1))

本质上,我想要的是专注于一个特定的间隔(比如0:0.2),对这个间隔有更大的间隔,然后压缩其余的间隔(0.2:1)。现在,我通过为我想要的间隔创建两个图来实现这一点,并将它们与grid.arrange结合在一起,但是我想知道是否有一个解决方案可以让我一次就生成这个图。
这是我目前的解决方案:
q1<-ggplot(dat, aes(x,y)) + geom_point() + ylim(c(0.2,1)) + xlim(c(0,0.2))+ theme(axis.text.x = element_blank(), axis.title.x = element_blank(), axis.ticks.x=element_blank())
q2<-ggplot(dat, aes(x,y)) + geom_point() + ylim(c(0.2,1)) + xlim(c(0.2,1))+ theme(axis.text = element_blank(), axis.title = element_blank(), axis.ticks=element_blank())
q3<-ggplot(dat, aes(x,y)) + geom_point() + ylim(c(0,0.2)) + xlim(c(0,0.2))
q4<-ggplot(dat, aes(x,y)) + geom_point() + ylim(c(0.2,1)) + xlim(c(0.2,1))+ theme(axis.text.y = element_blank(), axis.title.y = element_blank(), axis.ticks.y=element_blank())
grid.arrange(q1,q2,q3,q4)

发布于 2021-02-05 15:13:34
dat <- data.frame(x = runif(100), y = runif(100))
ggplot(dat, aes(x,y)) + 
  geom_point() + 
  scale_x_continuous(breaks=c(0,0.1,0.2,0.4,0.8,1)) + 
  scale_y_continuous(breaks=c(0,0.1,0.2,0.4,0.8,1))

dat$condx <- ifelse(dat$x > 0.2, "x2", "x1")
dat$condy <- ifelse(dat$y > 0.2, "y1", "y2")
dat$condxy <- paste(dat$condx, dat$condy)
ggplot(dat, aes(x, y, group=condxy)) + 
  geom_point() + 
  scale_x_continuous(breaks=c(0,0.05,0.1,0.15,0.2,0.4,0.6,0.8,1)) + 
  scale_y_continuous(breaks=c(0,0.05,0.1,0.15,0.2,0.4,0.6,0.8,1)) +
  facet_grid(condy~condx, scales="free")

(与同一轴上的两个鳞片有关)
致以敬意,
https://stackoverflow.com/questions/66063910
复制相似问题