R 为ggplot创建用户函数

R 为ggplot创建用户函数,r,ggplot2,R,Ggplot2,我正在尝试创建一个函数来编辑ggplot的外观 下面是一个我想用函数创建的示例(显然我尝试创建的函数更复杂,但这是为了演示) 以下是我试图实现的功能: name_axis <- function(){ xlab(label = "") + ylab(label = "") } group_by(iris, Species) %>% summarise(m = mean(Sepal.Width)) %>% ggplot(aes(x = Species,

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

下面是一个我想用函数创建的示例(显然我尝试创建的函数更复杂,但这是为了演示)

以下是我试图实现的功能:

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()
name\u轴%
总结(m=平均值(萼片宽度))%>%
ggplot(aes(x=物种,y=m))+
geom_col()+
名称_轴()
我知道我可以这样做,首先将绘图保存到一个对象,然后将绘图传递给新函数。但是我想跳过这一步,改用“+”。

你可以用

  • 一个
    列表()
  • name\u轴%
    总结(m=平均值(萼片宽度))%>%
    ggplot(aes(x=物种,y=m))+
    geom_col()+
    名称\u轴
    
  • 在函数内传递列表:
  • name\u轴%
    总结(m=平均值(萼片宽度))%>%
    ggplot(aes(x=物种,y=m))+
    geom_col()+
    名称_轴()```
    
    那么,您希望轴完全不显示标签吗?在本例中为“是”。我正在尝试为ggplot创建一系列“look函数”,以标准化外观。所以一个函数会有轴名称的参数,y轴是否应该显示百分比等等。哇,好吧,我不知道你可以使用列表来完成这个任务。非常感谢你的建议。这解决了我的问题。非常感谢。
    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()
    
        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
    
      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()```