我有以下代码生成图表。我想循环这个代码并为y =(当前是XYZ)输入不同的值。对于每个ggplot图,我想保存输出。例如,第一循环将是y = XYZ,第二循环y = ABC,第三循环y = QRS等。
UK<-ggplot(Diff, aes(x = FactSet.Fund.Code , y = XYZ, colour = Fund.Manager.x))
UK<- UK + geom_point(data = subset(Diff,DeskName.x=="UK Equities"), size = 6)
UK<- UK + theme(axis.text = element_text(angle = 90))
答案 0 :(得分:0)
这应该有效。肖恩完全正确aes_string
让它发挥作用。 aes
通常使用称为非标准评估的内容(如果您不熟悉,我建议您阅读here)。出于您的目的,这意味着您只能将下面的循环中的i
直接传递给aes,因为aes
会将其解释为列,而不是评估哪些信息{{ 1}}包含。 i
只允许您将列的名称作为字符串传递。然后你可以在循环中单独保存每个绘图。
aes_string
答案 1 :(得分:0)
通常ggplots保存在列表中,请尝试以下:
Y_list = c('XYZ', 'ABC', 'QRS')
g_list = list()
for (yi in Y_list) {
UK<-ggplot(Diff, aes_string(x = 'FactSet.Fund.Code', y = yi, colour = 'Fund.Manager.x'))
UK<- UK + geom_point(data = subset(Diff,DeskName.x=="UK Equities"), size = 6)
UK<- UK + theme(axis.text = element_text(angle = 90))
g_list[[yi]] = UK
}