R Ggplot代码和带有Ggplot的函数不提供相同的结果

R Ggplot代码和带有Ggplot的函数不提供相同的结果,r,function,ggplot2,plot,bar-chart,R,Function,Ggplot2,Plot,Bar Chart,我在创建包含ggplot的函数时遇到问题。当我在函数外部执行代码时,它会生成我想要的绘图,但在函数内部它会生成不同的绘图。。。我不确定我做错了什么 我在reprex下面复制了一个示例数据库: 库(tidyverse) #>警告:程序包“tidyverse”是在R版本4.0.5下生成的 #>警告:包“ggplot2”是在R版本4.0.5下生成的 #>警告:程序包“tibble”是在R版本4.0.5下生成的 #>警告:包“tidyr”是在R版本4.0.5下构建的 #>警告:程序包“readr”是在R

我在创建包含ggplot的函数时遇到问题。当我在函数外部执行代码时,它会生成我想要的绘图,但在函数内部它会生成不同的绘图。。。我不确定我做错了什么

我在reprex下面复制了一个示例数据库:

库(tidyverse)
#>警告:程序包“tidyverse”是在R版本4.0.5下生成的
#>警告:包“ggplot2”是在R版本4.0.5下生成的
#>警告:程序包“tibble”是在R版本4.0.5下生成的
#>警告:包“tidyr”是在R版本4.0.5下构建的
#>警告:程序包“readr”是在R版本4.0.5下生成的
#>警告:包“purrr”是在R版本4.0.5下生成的
#>警告:包“dplyr”是在R版本4.0.5下生成的
#>警告:程序包“stringr”是在R版本4.0.5下生成的
#>警告:“forcats”软件包是在R版本4.0.5下构建的
图书馆(GG2)
#示例数据
wb%
集团(集团,收入)%>%
计数()%>%
完成(收入,填写=列表(n=0))%>%
变异(百分比=n/总和(n)*100)
ggplot(df、aes(收入、百分比、填充=组))+
geom_栏(状态='identity',位置='dodge')+
比例y连续(“标题y”,展开=c(0,0))+
比例x离散(“标题x”)+
刻度填充手册(“图例标题”,数值=c(“#15607a”)、“#18a1cd”、“青色”))+
主题经典(基本尺寸=11)+
主题(axis.text.x=元素\文本(角度=0,
hjust=1,vjust=0),
axis.line=元素_blank(),
axis.ticks.x=元素_blank(),
legend.title=element_text(color=“#00344c”,size=8,face=“bold”))
#现在我尝试创建一个函数来自动化上一个绘图
创建图形%
分组依据({x},{{y})%>%
计数()%>%
完成({y},fill=list(n=0))%>%
变异(百分比=n/总和(n)*100)
ggplot(df,aes(y,百分比,填充=x))+
geom_栏(状态='identity',位置='dodge')+
比例y连续(“标题y”,展开=c(0,0))+
比例x离散(t)+
刻度填充手册(“图例标题”,数值=c(“#15607a”)、“#18a1cd”、“青色”))+
主题经典(基本尺寸=11)+
主题(axis.text.x=元素\文本(角度=0,
hjust=1,vjust=0),
axis.line=元素_blank(),
axis.ticks.x=元素_blank(),
legend.title=element_text(color=“#00344c”,size=8,face=“bold”))
}
#当我单独执行函数时,生成的绘图与上面编码的绘图不同:
创建_图(x=“收入”,
y=“集团”,
t=“有趣的标题”)
由(v2.0.0)于2021年4月22日创建


非常感谢

一些观察结果:

  • create_graph()
    调用中,如果使用curly-curly
    {{{..}}
    包装进行非标准求值,则不需要引用变量名
  • create_graph()
    函数中,我想您可能已经交换了一些与示例图相关的
    x
    y
  • aes(…)
    调用中,还可以使用卷曲包装器
下面是我如何获得返回示例图的函数的示例:

库(tidyverse)
图书馆(GG2)
#示例数据
wb%
计数()%>%
完成({x},fill=list(n=0))%>%
变异(百分比=n/总和(n)*100)
ggplot(df,aes({x},百分比,填充={{y}))+
geom_栏(状态='identity',位置='dodge')+
比例y连续(“标题y”,展开=c(0,0))+
比例x离散(t)+
刻度填充手册(“图例标题”,数值=c(“#15607a”)、“#18a1cd”、“青色”))+
主题经典(基本尺寸=11)+
主题(axis.text.x=元素\文本(角度=0,
hjust=1,vjust=0),
axis.line=元素_blank(),
axis.ticks.x=元素_blank(),
legend.title=element_text(color=“#00344c”,size=8,face=“bold”))
}
创建_图(x=收入,
y=组,
t=“有趣的标题”)

由(v1.0.0)于2021年4月22日创建


旁注:如果您将第二个参数命名为
y
,人们可能会认为
y
是出现在y轴上的参数,而在您的绘图中并非如此。

非常感谢!!!!