使用facet_grid()创建相等且漂亮的比例尺中断

时间:2019-04-29 13:43:35

标签: r ggplot2 facet-grid

我想使用facet_grid()创建一个带有y轴自由比例的绘图。但是,对于每一行,刻度中断应平均分布,即3个中断。 我是从this question借来的,但是我无法以一种实际上是 pretty 的方式来适应代码。

但是,这是我目前的方法:

# Packages
  library(dplyr)
  library(ggplot2)
  library(scales)


# Test Data
  set.seed(123)

  result_df <- data.frame(
    variable = rep(c(1,2,3,4), each = 4),
    mode     = rep(c(1,2), each = 2),
    treat    = rep(c(1,2)) %>% as.factor(),
    mean     = rnorm(16, mean = .7, sd = 0.2),
    x       = abs(rnorm(16, mean = 0, sd = 0.5))) %>%
    mutate(lower = mean - x,upper = mean + x)

# Function for equal breaks, lended from

  equal_breaks <- function(n = 3, s = 0.05, ...) {
    function(x) {
      d <- s * diff(range(x)) / (1+2*s)
      round(seq(min(x)+d, max(x)-d, length=n), 2)
  }}


  ## Plot

 result_df %>%
   ggplot(aes(y = mean*100, x = treat)) +
   geom_pointrange(aes(ymin = lower*100, ymax = upper*100), shape = 20) +
   facet_grid(variable ~ mode, scales = "free_y")+
   scale_y_continuous(breaks = equal_breaks(n = 3, s = .2))+
   labs(x = "", y = "")

这导致了current plot。正如人们所看到的那样,这种休息绝非合理。

预先感谢您提出任何建议,如果您错过了已经存在的解决方案,请原谅。

最好的,马尔特

0 个答案:

没有答案