R-Plot(时间序列)

时间:2014-05-18 14:14:50

标签: r graph plot time-series

我的csv文件中有记录组。我想在同一窗口中为不同的组创建不同颜色的多个图形。例如,我在不同的时间点有N1A的记录,在不同的时间点有N2的{​​{1}}。我希望在同一个窗口中有两个图表,红色和绿色。可能吗?是否有可能在下面的例子中给出“group by”选项(这个例子对我来说对一套工作没问题)?

B

我看到有不同种类的图表,但这种方法非常简单。在此先感谢您的帮助。

============================> @jbaums, 您的代码可以正常使用该数据框。但是当我在真实环境中尝试如下时,虽然我的结果很好,但两张图的颜色都相同。我在做错误吗?我试着修好我的水平,但没有运气!

plot(as.Date(Lines$TIMEPOINT), Lines$RESULT_VALUE, xlab="Time In Week.", 
     ylab= "Result Value AT Specific Week.", type='l', col='red')

Same color for two graph

和第二个问题是:legand是红色但是线图是粉红色的。任何回复都将受到高度赞赏。

2 个答案:

答案 0 :(得分:0)

如果您的数据是行,并且您有A和B的组变量,则需要以下内容:

par(mfrow = c(2,1))
plot(as.Date(Lines$TIMEPOINT[Lines$group == 'A']), Lines$RESULT_VALUE[Lines$group == 'A'], xlab= "Time In Week.", ylab= "Result Value AT Specific Week.", type='l', col='red')
plot(as.Date(Lines$TIMEPOINT[Lines$group == 'B']), Lines$RESULT_VALUE[Lines$group == 'B'], xlab= "Time In Week.", ylab= "Result Value AT Specific Week.", type='l', col='green')

答案 1 :(得分:0)

这是一种迭代所有群体的方法:

Lines <- structure(list(AS_group = structure(c(1L, 1L, 2L, 1L, 3L, 2L), 
                                         .Label = c("A", "B", "C"), 
                                         class = "factor"), 
                    TIMEPOINT = c(4L, 5L, 4L, 1L, 5L, 1L), 
                    RESULT_VALUE = c(696537L, 718748L, 799355L, 805800L, 
                                     701262L, 531579L)), 
               .Names = c("AS_group", "TIMEPOINT", "RESULT_VALUE" ), 
               row.names = c(NA, 6L), class = "data.frame")

plot(Lines[, 2:3], type='n')
sapply(unique(Lines$AS_group), function(i) {
  Line <- subset(Lines, AS_group==i, select=2:3)
  points(Line[order(Line$TIMEPOINT), ], col=i, type='o', pch=20)
})
legend('bottomright', legend=unique(Lines$AS_group), bty='n', 
       lty=1, col=seq_along(unique(Lines$AS_group)), pch=20)

enter image description here

请注意,在这个小数据子集(前6行)中,只有一个C实例,因此对于该组,只绘制一个点,没有任何行。

有关详细信息,请参阅?plot?for?subset?points?legend