ggplot:如何使用ggplot()避免在函数调用中覆盖参数值?

时间:2015-01-02 11:42:45

标签: r ggplot2

densityplot_function = function(dsname , varno  )
{
aa =   names(dsname[varno]);
print(aa); 
ggplot(dsname, aes(x=aa , fill=category_var)) + geom_density(alpha=0.09);
print(graph);
}
densityplot_function(dsname , 3);
densityplot_function(dsname , 65);
densityplot_function(dsname , 68);

情节仅适用于变量3,但不适用于65和68 变量3的相同图表会重复吗?

1 个答案:

答案 0 :(得分:0)

这是一个猜测,因为你没有提供数据,而你的一些代码没有意义。

densityplot_function = function(dsname , varno, category_var) {
  require(ggplot2)
  aa <- names(dsname[varno])
  print(aa)
  graph <- ggplot(dsname,aes_string(x=aa,group=category_var,fill=category_var)) + 
    geom_density(alpha=0.09)
  print(graph)
}
densityplot_function(iris , 1, "Species")
densityplot_function(iris , 2, "Species")
densityplot_function(iris , 4, "Species")

请注意使用aes_string(...)代替aes(...)并使用group=category

这是第一个电话的输出: