R-使用ggplot2(多列)绘制数据框的通用函数

时间:2018-07-23 06:42:44

标签: r ggplot2

我有一个包含多列的数据框,并希望使用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"))

0 个答案:

没有答案