将scale_y_sqrt()与“限制”相结合会删除第一个y轴打断

将scale_y_sqrt()与“限制”相结合会删除第一个y轴打断,r,ggplot2,R,Ggplot2,我想合并 y轴sqrt比例和 设置y轴限制 问题是,scale_y_sqrt(limits=c(0,10))导致y轴失去第一个断点(0) 我如何重写它以获得期望的结果 R代码最小示例: library(ggplot2) library(grid) library(gridExtra) N <- 10 test_data <- data.frame( idx <- 1:N, vals <- runif( N, min = 0, max = 10) ) g

我想合并

  • y轴sqrt比例和
  • 设置y轴限制
问题是,
scale_y_sqrt(limits=c(0,10))
导致y轴失去第一个断点(0)

我如何重写它以获得期望的结果


R代码最小示例:

library(ggplot2)
library(grid)
library(gridExtra)

N <- 10
test_data <- data.frame(
  idx  <- 1:N,
  vals <- runif( N, min = 0, max = 10)
)

grid.arrange(
  ggplot( test_data, aes(x = idx)) + 
    geom_line( aes(y = vals)) + 
    scale_y_continuous( limits = c(0,10)),
  ggplot( test_data, aes(x = idx)) + 
    geom_line( aes(y = vals)) + 
    scale_y_sqrt( limits = c(0,10)),
  ncol = 2
)
库(ggplot2)
图书馆(网格)
图书馆(gridExtra)

N这似乎是一个已知的问题。看看哪一个也提供了一些解决办法。

这很奇怪,但是如果你在你的刻度中加上
expand=c(0,0)
,零会重新出现。@baptiste:谢谢,我可以证实这一点。然而,这会将空间降到10以上0以下。来自AEBilgrau链接的解决方案实现了这一点。