【发布时间】:2021-02-05 13:12:19
【问题描述】:
我想创建一个具有自定义轴刻度间距的图。我想要实现的类似于这个情节:
我可以使用中断参数指定轴刻度位置,但我无法更改它们之间的距离。
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)
【问题讨论】:
-
你的意思是像对数刻度吗?
-
示例图采用反向 log10 比例。您可以通过 log10 转换您的输入数据(和中断,但不是标签)来实现这一点,并在比例中设置
trans = "reverse"。 -
scale_x_log10 有帮助,但我想专注于特定的时间间隔。我正在编辑我的问题以进一步澄清它。