如何从数字结果的时间序列和带有颜色编码处理的多个治疗组制作图表

时间:2014-08-23 16:49:48

标签: r graph time-series stacked

我需要从一个时间序列中创建一个图表,在第一列中有一个具有2个级别的组变量,在第二个另一个组变量(较小的组)中有22个级别,然后是427个变量,这些变量使用a数字结果。像这样:

VT  Medication V1 V2 V3 V4 V5 V6 V7 V8 
1           1   0  1  1  1  3  3  3  3 
1           2   0  1  1  1  2  1  1  1 
1           3   0  2  2  2  0  0  0  0 
1           4   1  1  4  5  6  4  0  0
2           1   1  1  3  3  3  3  3  3
2           2  etc
2           3
2           4

现在我想制作两个图,一个来自VT组1,另一个来自VT组2,y轴为数字结果,x轴为天。我还希望它是一个累积图,用颜色区分对图的贡献。我认为它看起来几乎与每天堆叠的列并将它们放在一起相似。但是,如果可能的话,我希望它是平滑的线条,就像在另一个上面叠加交互图的线条一样。

它必须看起来像一个22层不同颜色的图形编码22"药物" - 基团。

我希望从这个描述中我想要的有点清楚。 德克

1 个答案:

答案 0 :(得分:0)

当我做这样的情节时,我通常会将数据转换为长格式。 ggplot2包是制作各种分组图的不错选择。

library(reshape)
library(ggplot2)

data <- read.table(header=TRUE, text=
"VT  Medication V1 V2 V3 V4 V5 V6 V7 V8
1           1   0  1  1  1  3  3  3  3
1           2   0  1  1  1  2  1  1  1
1           3   0  2  2  2  0  0  0  0
1           4   1  1  4  5  6  4  0  0
2           1   1  1  3  3  3  3  3  3")

data <- melt(data, id.vars=c("VT","Medication"), variable_name="Day")
data$VT <- as.factor(data$VT)
data$Medication <- as.factor(data$Medication)
data$Day <- as.numeric(data$Day)
plot.data <- data[data$VT==1,]

ggplot(plot.data, aes(,x=Day, y=value, colour=Medication)) +
  geom_line() +
  scale_colour_manual(values=c("red","blue","green","black"))

enter image description here