ggplot2 - 仅显示 y 轴的上下范围

ggplot2 - show only lower and upper range of y axis

我的 geom_dotplot 中的 y 轴范围从 0 到 1。点仅在上限和下限范围内。我想将没有点 (0.05 - 0.95) 的中间范围缩小到 0.05 区间,并与 0 - 0.05 之间的下限和 0.95-1 的上限一起显示。 有人可以帮忙吗? 我的代码是:

ggplot(
  identical, aes(x=SNV, y=RAF, fill=Mutual_zygosity_of_parents)) +
  geom_dotplot(
    binaxis = 'y', stackdir = 'center', stackratio = 0, dotsize = 0.3, show.legend = FALSE) +
  scale_fill_manual(values=c("cadetblue1")) + 
  theme(legend.key=element_blank()) +
  theme(axis.title.x=element_blank(),
        axis.text.x=element_blank(),
        axis.ticks.x=element_blank())+
  theme(axis.text.y = element_text(face="bold",size=16), 
        axis.title.y = element_text(face="bold",size=16)) +
  theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank(),
        panel.background = element_blank(),
        axis.line = element_line(colour = "black")) +
  expand_limits(x= c(-1,+195))

非常感谢 米洛斯

您的问题无法重现,因为我们没有您的数据,但我们至少可以构造一个具有相同名称的类似数据结构,以便我们可以使用您的绘图代码获得类似的结果:

set.seed(1)

identical <- data.frame(SNV = factor(sample(1:200, 400, TRUE)),
                        RAF = c(runif(200, 0, 0.02), runif(200, 0.97, 1)),
                        Mutual_zygosity_of_parents = "Yes")

p <- ggplot(
  identical, aes(x=SNV, y=RAF, fill=Mutual_zygosity_of_parents)) +
  geom_dotplot(
    binaxis = 'y', stackdir = 'center', stackratio = 0, dotsize = 0.3, show.legend = FALSE) +
  scale_fill_manual(values=c("cadetblue1")) + 
  theme(legend.key=element_blank()) +
  theme(axis.title.x=element_blank(),
        axis.text.x=element_blank(),
        axis.ticks.x=element_blank())+
  theme(axis.text.y = element_text(face="bold",size=16), 
        axis.title.y = element_text(face="bold",size=16)) +
  theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank(),
        panel.background = element_blank(),
        axis.line = element_line(colour = "black")) +
  expand_limits(x= c(-1,+195))

p

现在的问题是 ggplot 不能做不连续的轴,但你可以通过刻面来相当接近。我们需要做的就是将 faceting 变量设置为 RAF < 0.5,这会将上下点分成它们自己的组。如果我们也使用scales = "free_y",那么y轴会“放大”到上下点的范围:

p + facet_grid(RAF < 0.5~., scales = "free_y")
  theme(strip.background = element_blank(),
        strip.text = element_blank())