【发布时间】:2012-02-02 11:37:05
【问题描述】:
我必须生成 250 个具有相同视图的图。
我的示例数据集:
df <- data.frame(name = c("john","alex","mike","dennis","alex"),
expenses = c("10","12","15","8","2"),
type = c("food","rent","rent","food","food"))
我想要条形图,其中包含单个图中每个名称的费用。 “alex”的情节将如下所示:
selected.name <- "alex"
df1 <- subset(df, name == selected.name)
ggplot(data = df1, aes(type, expenses)) + geom_bar()
现在我想使用一个循环,为 df 中的每个名称绘制相同的图。我尝试使用 for 循环将上面的绘图代码作为源文件运行。但是我不能将 name 变量传递给源文件,以便它为每个名称绘制图形。现在我只能从 for 循环中得到一张图。
【问题讨论】:
-
请详细说明您的问题。你的问题是你只有 1 个窗口和 1 个图形吗?比
x11()可能是解决方案。如果您想保存 pdf,请使用pdf(file)print(ggplot(...)dev.off().... -
嗨,Seb,感谢您的回复。我想创建一个图,就像我为 df 中的每个其他名称的名称 alex 创建的图一样。无需手动输入名称。因为在真实数据中有 250 个名字。希望这会有所帮助。
-
@Seb,我会选择 ggsave 而不是 pdf()。
-
this example 有帮助吗?