将数据分成组和&情节

时间:2016-03-10 20:22:04

标签: r plot ggplot2

我有这样的数据集:

T  A B C D
0  1 2 2 4
1  1 4 1 5
2  1 7 2 4 
3  2 9 4 0 
4  2 0 3 0
5  2 3 7 1    
6  1 7 3 5
7  1 7 3 5
8  3 1 6 0
9  3 2 3 9
10  1 2 2 4
11  1 4 1 5
12  1 7 2 4 
13  2 9 4 0 
14  2 0 3 0
15  2 3 7 1 

我想使用ggplot作为时间序列在R中绘制数据。这里T是时间(x轴)。 B,C和D列将有3行。我需要根据A列中的值突出显示整个图。

例如,如果A中的值为1,则不需要执行任何操作。如果A中的值是2,我需要用黄色矩形突出显示该部分(例如时间5-7和时间15-16)。如果A中的值是3,我需要用蓝色矩形突出显示该部分(例如时间10-11)。

因此,该图应该看起来像一个时间序列图,其上有几个透明矩形,这将突出显示A具有特定值的区域。我还需要将这些颜色添加为图例。

1 个答案:

答案 0 :(得分:1)

这是你想要做的吗?

library(reshape)
library(ggplot2)
df.mlt <- melt(df, id=c("T","A"))
df.mlt$A <-  as.factor(df.mlt$A)
ggplot(df.mlt, aes(T, value)) +  
geom_ribbon(data=subset(df.mlt, A != 1),aes(x=T,ymax=10,ymin=0, fill=A)) +
geom_line(aes(color=variable)) + scale_fill_manual(values=c("yellow", "blue"))

enter image description here