Создание равных и красивых масштабных разрывов с помощью facet_grid () - PullRequest
0 голосов
/ 29 апреля 2019

Я хочу создать график, используя facet_grid() со свободными масштабами для оси y. Однако для каждой строки разрывы шкалы должны распределяться равномерно, то есть с 3 перерывами. Я получил от этот вопрос , но я не смог адаптировать код таким образом, чтобы разрывы шкалы были на самом деле довольно .

Однако, это мой текущий подход:

# 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 = "")

Что приводит к этому текущему графику . Как видно, перерывы далеко не разумны.

Заранее спасибо за любые рекомендации и, пожалуйста, извините, если я пропустил уже существующее решение.

Бест, Мальте

...