2017-05-02 4 views
1

私はxtsデータ(年間降雨量)をプロットし、その上にトレンドライン(例えば黄土)を追加しようとしています。誰かがttsにxtsを変換する必要なくトレンドラインをプロットするオプションを提案してください。トレンドラインで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

私はむしろ簡単なシーケンシャルとして適切な日付/年表示なし(plotコマンドプロット、XTSパッケージがライブラリにロードされていない場合は、その時系列を実現後続の行(lowess())コマンドは、期待どおりに行を追加します。 しかし、xtsパッケージがライブラリにアタッチされるとすぐに、plotコマンドは適切なDateの表示を含むシリーズを正しくプロットしますが、それ以降の行(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

Answer Adamに感謝します。しかし、私は、xtsをデータフレームまたはtsに変換する必要なしにトレンドラインをプロットしようとしました(できますか?)。 (私は、複数の時間スケールのために降雨ステーションとxtsオブジェクトがたくさんあるので、可能であれば、さらなるオブジェクトを作成するために必要な数を減らしたい)。 – Dnstuladhar

関連する問題