【发布时间】:2017-09-28 22:39:59
【问题描述】:
我创建了一个大型数据框(>100 列)
s <- data.frame(x1, x2,....,x100)
var_list <- names(s)
然后我手动为相应的 y 轴创建另一个包含 100 个名称的列表:
y_names <- c("Time", "hr", "W m-2"..... 100 items)
最后,我循环遍历列表以创建一个包含 100 个图的 PDF:
plot_list = list()
for (i in 2:length(var_list)) {
p = ggplot(s, aes_string(x = x1, y = var_list[i])) +
geom_line()+
ylab(y_names[i])+
ggtitle(paste(var_list[i]))
plot_list[[i]] = p
}
# create pdf where each page is a separate plot. ,
pdf("figures.pdf", width=7, height=1.5)
for (i in 2:length(var_list)) {
print(plot_list[[i]])
}
dev.off()
显然,这是一个问题,因为除了查看最终图之外,我永远无法确定我是否将正确的 y 轴赋予正确的图。如果我必须更改订单,那就完全不同了。
如何更好地设置名称?也许在我可以确定顺序的数据框本身中?
【问题讨论】:
-
是否存在始终与特定
y_names匹配的特定var_list值?例如,是否有像wm这样的列名,您总是希望在图中将其翻译为W m-2?如果是这样,您可以创建一个查找表,然后使用连接将适当的y-axis标签与每个列名匹配,而无需知道顺序。如果您提供一个小数据样本和与列名匹配的 y 轴标签,那么对您的帮助会更容易。 -
Var_list只是列的名称。并且每一列都与一个唯一的y_names相关联。有些可能没有任何 y_name,因为它们可能是没有单位的分数。我会尝试提供一些数据,因为它们很大。但是,如果您可以使用任何示例数据进行详细说明,那就太好了! -
我添加了一个答案。事实证明,加入是不必要的。我只是使用
match函数来获取与用于每个绘图的y 列对应的y_lab。 -
@eipi10 非常感谢!它有很大帮助。但它仍然无法帮助我在代码中将单位设置在变量旁边,这使得代码变得笨拙。