我有一个包含多列的数据框,并希望使用ggplot2进行绘制。第一列是Posixct格式的日期时间,下一列都是数字。
datetime instr1 instr2 instr3 instr4
12895 2018-05-08 05:11:00 NA 41.8 36.9 6.5
12896 2018-05-08 05:12:00 NA 42.1 34.2 8.3
12897 2018-05-08 05:13:00 NA 44.2 28.7 8.1
12898 2018-05-08 05:14:00 NA 54.7 29.1 7.6
12899 2018-05-08 05:15:00 NA 55.8 30.3 7.5
12900 2018-05-08 05:16:00 NA 60.5 33.7 5.8
我用for循环编写了一个通用函数
plot_df_with_datetime <- function(df, interval){
p <- ggplot(df, aes(x = datetime))
for (i in 2:length(colnames(df))){
p <- p + geom_line(aes(y = get("df")[,colnames(df)[i]], color = colors()[i]))
}
p
}
但是,似乎for循环不会在绘图中添加另一行,而是会覆盖最后一行。 如果有人可以指出错误,我将不胜感激。如果我“手动”执行此代码,则此代码可与我的数据集一起使用:
ggplot(NO2, aes(x = datetime)) +
geom_line(aes(y = instr1 , color = "instr1")) +
geom_line(aes(y = instr2 , color = "instr2"))