为ggplot创建用户功能

时间:2019-06-28 09:21:45

标签: r ggplot2

我正在尝试创建一个函数来编辑ggplot的外观。

这是我想使用一个函数创建的示例(显然我要创建的函数比较复杂,但这只是为了演示)。

library(ggplot2)
library(dplyr)
group_by(iris, Species) %>%
  summarise(m = mean(Sepal.Width)) %>%
  ggplot(aes(x = Species, y = m)) +
  geom_col() + 
  xlab("") + ylab("")

这是我要执行的功能:

name_axis <- function(){
  xlab(label = "") + 
  ylab(label = "")   
}

group_by(iris, Species) %>%
  summarise(m = mean(Sepal.Width)) %>%
  ggplot(aes(x = Species, y = m)) +
  geom_col() + 
  name_axis()

我知道我可以这样做,首先将绘图保存到对象,然后将绘图传递给新函数。但我想跳过这一步,而改用“ +”。

1 个答案:

答案 0 :(得分:2)

您可以使用

  1. 一个list()
    name_axis <- list(
      xlab(label = "Nothing"),  
      ylab(label = ""))

    group_by(iris, Species) %>%
      summarise(m = mean(Sepal.Width)) %>%
      ggplot(aes(x = Species, y = m)) +
      geom_col() + 
      name_axis
  1. 在函数内部传递列表:
  name_axis <- function(){
      list(xlab(label = ""), 
        ylab(label = "hello"))   
    }

   group_by(iris, Species) %>%
      summarise(m = mean(Sepal.Width)) %>%
      ggplot(aes(x = Species, y = m)) +
      geom_col() + 
      name_axis()```