2013-05-11 2 views
0

다음 설명에 따라 여러 시간 계열 플롯에 대한 도움을 찾고 있습니다.서로 다른 수의 관측치를 갖는 ggplot2를 사용하는 여러 시간 계열 플롯

다음 구조의 데이터 프레임이 있습니다. 열 isin 반복이며 5 고유 값이 있습니다. 각 isin에는 t_week, MS 및 t_MS로 구성된 여러 행의 데이터가 있습니다. 각 isin에는 행 수가 동일하지 않습니다. 다른 말로, 데이터 프레임은 데이터 포인트의 수가 동일하지 않은 각 isin에 대한 2 개의 시계열 (t_week, MS) (t_week, t_MS)을가집니다.

ggplot2를 사용하여 단일 플롯에 모든 5 isin 시계열 (t_week, MS)을 플롯하려고합니다. 동일한 길이의 여러 시계열을 쉽게 플롯 할 수 있지만 여기에서 도움이되는 것은 "R"방식입니다. 도와주세요.

ggplot(df, aes(x = t_week, y = MS, color = isin)) + geom_line() 

MSt_week의 플롯을 구성 줘야 해, 각각의 고유의 다른 색 라인 :

관련

K

str(df) 
'data.frame': 95 obs. of 4 variables: 
$ isin : chr "IN0019960056" "IN0019960056" "IN0019960056" "IN0019960056" ... 
$ t_week: Date, format: "2006-01-09" "2006-01-16" ... 
$ MS : num 0 0 0.01 0.86 0.54 0.23 1.55 0.07 0.29 0.79 ... 
$ t_MS : num 0.14 0.14 0.14 0.75 0.35 0.31 0.63 0.28 0.54 0.52 ... 
+0

는 [재현성 예]주세요 (http://stackoverflow.com/a/5963610/1412059). – Roland

+0

그리고 플롯을 구성하기 위해 지금 사용하고있는 코드를 보여주십시오. –

답변

3

canocial ggplot2 방법은 다음과 같다 요소는 isin입니다. timeseries가 동일한 수의 행으로 구성되지는 않으며 동일한 시간 범위를 처리 할 필요조차 없습니다. 예 :

df_part1 = data.frame(t_week = seq(1,5,length=100), MS = runif(100), isin = "A") 
df_part2 = data.frame(t_week = seq(2,6,length=500), MS = runif(500) + 1, isin = "B") 
df = rbind(df_part1, df_part2) 

library(ggplot2) 
ggplot(df, aes(x = t_week, y = MS, color = isin)) + geom_line() 

enter image description here

+0

이것은 대단한 @Paul입니다. 무리 감사. 나는 ddply를 사용하여 모든 종류의 조합을 시도해 보았고 융합되어 비 감각적 인 플롯으로 이어졌습니다. ISIN을 범주 형 변수로 취급 할 수 있고 ggplot이 마침내 트릭을 수행한다는 사실을 알지 못했습니다. 다시 한번 훌륭한 솔루션에 감사드립니다. – kishore

+0

문제가 해결되면 내 대답 옆의 왼쪽에있는 녹색 체크 표시를 클릭하여 문제를 해결할 수 있습니다. –

관련 문제