2017-05-02 1 views
1

xts 데이터 (연간 강우량)를 플롯하고 그 위에 트렌드 라인 (예 : 황토)을 추가하려고합니다. 누군가가 xts를 ts로 변환 할 필요없이 추세선을 그릴 수있는 옵션을 제안 할 수 있습니까?추세선을 사용하여 xts 데이터 플로팅

예 데이터 :

>RainXts 
      Rf 
1978-12-31 1416.95 
1979-12-31 881.152 
1980-12-31 1437.75 
1981-12-31 881.10 
1982-12-31 966.07 
1983-12-31 1387.61 
1984-12-31 1013.58 
1985-12-31 1180.57 
1986-12-31 1162.35 
1987-12-31 883.92 
1988-12-31 955.84 
1989-12-31 828.472 
1990-12-31 1208.72 
1991-12-31 1324.72 
1992-12-31 1096.2 
1993-12-31 1454.64 
1994-12-31 874.64 
1995-12-31 941.92 
1996-12-31 883.92 
1997-12-31 793.44 

참고 : 작품 아래의 명령을 TS 객체에 XTS 변환 및 사용 (RainTs의 =의 as.ts (RainXts가))

lines(lowess(time(RainTs),RainTs),col="red") 
+0

은 그냥 XTS 패키지가 도서관에 적절한 날짜없는 플롯 명령을 플롯시 시리즈 (/ 년 디스플레이 아니라 간단한 순차적으로로드되지 않은 경우, 실현 숫자)하지만 후속 라인 (lowess()) 명령은 예상대로 라인을 추가합니다. 그러나 xts 패키지가 라이브러리에 연결 되 자마자 plot 명령은 시리즈를 올바르게 표시하지만 적절한 날짜 표시를 포함하지만 후속 라인 (lowess())은 제대로 작동하지 않습니다. 두 가지 모두 해결할 수있는 해결 방법입니다. – Dnstuladhar

답변

0

여기 빠른 방법 ggplot, 당신은 df$date <- as.Date(rownames(RainXts))과 더불어, data.frame로 데이터를 변환하는 경우 :

ggplot(df, aes(date, Rf)) + 
     geom_point() + 
     stat_smooth() 

enter image description here

데이터 프레임 사용 :

df<- structure(list(Rf = c(1416.95, 881.152, 1437.75, 881.1, 966.07, 
1387.61, 1013.58, 1180.57, 1162.35, 883.92, 955.84, 828.472, 
1208.72, 1324.72, 1096.2, 1454.64, 874.64, 941.92, 883.92, 793.44 
), date = structure(c(3286, 3651, 4017, 4382, 4747, 5112, 5478, 
5843, 6208, 6573, 6939, 7304, 7669, 8034, 8400, 8765, 9130, 9495, 
9861, 10226), class = "Date")), class = "data.frame", .Names = c("Rf", 
"date"), row.names = c(NA, -20L)) 
+0

감사합니다. 아담에게 감사드립니다. 하지만 xts를 데이터 프레임이나 TS로 변환 할 필요없이 추세선을 그려보기 위해 노력하고있었습니다. (나는 많은 시간대에 강우 역과 xts 객체를 많이 가지고 있으므로 가능한 경우 추가 객체를 생성하기위한 요구 사항 수를 줄이려고합니다.) – Dnstuladhar