R 按动态选择的列填充ggplot

R 按动态选择的列填充ggplot,r,ggplot2,dynamic,parameter-passing,R,Ggplot2,Dynamic,Parameter Passing,我正在创建一个ggplot条形图,如下所示 fill_by <- "some_column" g <- ggplot(plot_data,aes(x = xvals,y = yvals, fill = fill_by)) + geom_bar(stat = "identity") 这也不起作用 有没有办法以这种方式动态指定fill参数的值?理想的解决方案将容纳la指定的多个柱 fill_by = c("col 1", "col 2") 等等。在这种情况下,应使用sym从

我正在创建一个ggplot条形图,如下所示

fill_by <- "some_column"
g <- ggplot(plot_data,aes(x = xvals,y = yvals, fill = fill_by)) +
     geom_bar(stat = "identity")
这也不起作用

有没有办法以这种方式动态指定fill参数的值?理想的解决方案将容纳la指定的多个柱

fill_by = c("col 1", "col 2")

等等。

在这种情况下,应使用
sym
从字符切换到名称

库(dplyr)
按人头(3)的百分比填充,
aes(x=行名,y=mpg,填充=!!填充者))+
几何图形栏(stat=“identity”)


fill_by+1这非常有用,谢谢!唯一的问题是,我不确定如何满足问题的最后一部分(即,通过多个动态指定的列填充)。我试过用
fill\u来填充,但我不知道这意味着什么。你想要两张图表出来,一张填一张吗?或者你希望两个值以某种方式结合起来?后者越多。我习惯使用Microstrategy等数据可视化工具,其中用户可以将任意属性集合拖动到可视化的“color by”字段中,软件会根据数据中这些属性的所有可能元组自动着色。我假设ggplot支持这种行为,但我猜我的假设是错误的?你能举个例子吗?例如,
mtcars
数据的外观是什么?
fill_by = c("col 1", "col 2")
library(dplyr)

fill_by <- "cyl"

fill_by <- sym(fill_by)
ggplot(mtcars %>% tibble::rownames_to_column() %>% head(3),
            aes(x = rowname,y = mpg, fill = !!fill_by)) +
  geom_bar(stat = "identity")
fill_by <- "qsec"
[same as above]