在多个ggplots中设置缩放参数

时间:2017-11-21 18:51:32

标签: r ggplot2 tidyverse

我可以轻松设置可以多次重复使用的因子级别的参数,如下例所示:

cp -r "./app" "//servername/Folder1/Subfolders"

我可以用ggplot量表做到这一点吗?我想设置scale_y_continuous(scale_y_parameter),以便可以在一系列图表中轻松更新scale_y_continuous参数。

此代码有效:

am_labels_parameter <- c("auto", "manual")

d <- 
  mtcars %>% 
  mutate(
    cyl = as.factor(cyl), 
    am = factor(am, labels = am_labels_parameter)
  ) %>% 
  group_by(cyl, am) %>% 
  summarise(mpg = mean(mpg)) 

这是我想要工作的代码,但不知道如何设置参数:

d %>% 
  ggplot(aes(x = cyl, y = mpg, fill = am)) + 
  geom_col(position = "dodge") + 
  scale_y_continuous(
    breaks = seq(0, 30, by = 10),
    limits = c(0, 30)
    )

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

将参数存储在列表中,然后您可以将参数硬编码到函数中:

scale_y_parameter <- 
    list(breaks = seq(0, 30, by = 10),
         limits = c(0, 30))

d %>% 
    ggplot(aes(x = cyl, y = mpg, fill = am)) + 
    geom_col(position = "dodge") + 
    scale_y_continuous(breaks = scale_y_parameter$breaks, limits = scale_y_parameter$limits)

或使用do.call将参数列表应用于scale_y_continuous

scale_y_parameter <- 
    list(breaks = seq(0, 30, by = 10),
         limits = c(0, 30))

d %>% 
    ggplot(aes(x = cyl, y = mpg, fill = am)) + 
    geom_col(position = "dodge") + 
    do.call(scale_y_continuous, scale_y_parameter)

都给出了:

enter image description here