我有如下兩個時間序列:- [R ggplot顏色標記時間序列基於
y1 <- mvrnorm(50, c(3,1), matrix(c(0.5,0.3,0.3,0.3),2,2))# 2-D bivariate normal
y2 <- mvrnorm(50, c(1,0), matrix(c(2,.1,.1,1),2,2))# another 2-D bivariate normal
y <- rbind(y1,y2) # append the second to the end of the first
我與ggplot繪製這些:
yd <- as.data.frame(y)
g<- ggplot(data=yd) +
geom_line(aes(x=1:nrow(yd), y=yd$V1, colour= "TS1"))+
geom_line(aes(x=1:nrow(yd), y=yd$V2, colour= "TS2"))+
scale_colour_manual(name= "Levels",
values = c("TS1"= "black",
"TS2" ="blue"))+
labs(title="Two time series")+
xlab("Time") +
ylab("Levels") +
theme(legend.justification = c(1, 0), legend.position = c(1, 0))
我然後運行的分類器它爲每個時間點創建一個類標籤的數字向量。下面我繪製後綴並提供標籤向量。
dput(labels)
c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L)
我希望能夠進行顏色編碼圖1相對於從上述標籤矢量派生的類的標籤。清楚的是,我希望能夠在任何時候看到我處於什麼狀態(階級),而不僅僅是看到狀態轉移的邊界。我認爲最直觀的做法是當狀態轉移到第2級時,將背景顏色(例如從灰色變爲橙色)變爲
在ggplot中實現此功能的最佳方法是什麼?我明顯對其他解決方案建議持開放態度。
在時移時用'geom_vline()'畫一條垂直線? – Andrie 2015-02-06 09:19:37
但是如果我已經說了3個狀態,我不知道這個轉換是從狀態1轉換到狀態3還是從狀態1轉換到狀態2.(我明白你的意思了,但是會加上這個問題) – Rhubarb 2015-02-06 09:20:30