0

同じグラフに複数の時系列をプロットしようとしています。

以下はファイルのスニペットです。

Date        FP1M      FP3M    FP6M
2001-12-01  6.44      6.34    6.36
2002-01-01  5.70      6.00    5.99

plot()をlines()と組み合わせて使用​​すると、グラフは取得されますが、x(つまり時間)軸は取得されません。

コードは次のとおりです。

z <- read.table("C:\\Users\\lenovo\\Desktop\\IRPfinal.txt",header=TRUE,sep="")
d <- as.Date((z$Date),format="%m/%d/%Y")
a <- z[,"FP1M"]
b <- z[,"FP3M"]
c <- z[,"FP6M"]
plot(d,a,xaxt="n",type="l",xlab="Timeline",lwd=5,ylab="Percent",xaxt="n",
     main="Forward Premia on the US Dollar")
lines(d,b,type="l",col="red",lwd=5)
lines(d,c,type="l",col="blue",lwd=5)
legend(0,col=c("black","red","blue"),lwd=5,legend=c("FP1M","FP3M","FP6M"))
axis(1, d ,format(d, "%b  %y"), cex.axis = .4)

次のエラーが表示されます。

Error in plot.window(...) : need finite 'xlim' values
In addition: Warning messages:
1: In min(x) : no non-missing arguments to min; returning Inf
2: In max(x) : no non-missing arguments to max; returning -Inf

日付軸が正しく表示されないのはなぜですか?

上記の問題を解決するzooパッケージを試しましたが、グラフに凡例を追加できません。legendコマンドはzooでサポートされていませんか?

4

2 に答える 2

1

zoolattice: _

dat <- "Date        FP1M      FP3M    FP6M
2001-12-01  6.44      6.34    6.36
2002-01-01  5.70      6.00    5.99"

z <- read.zoo(textConnection(dat), header=TRUE)
xyplot(z, superpose=TRUE, xlab="Timeline", ylab="Percent",
       main="Forward Premia on the US Dollar")
于 2011-10-05T08:07:14.490 に答える
0

ご協力いただきありがとうございます。あなたの提案を試しています。一方、locator(1)引数を使用してzooパッケージを使用しているときに凡例を追加できたので、凡例ボックスの原点に不適切な座標を指定していたことが明らかに問題でした。

さらに、ウェブページ (下のリンク) の助けを借りて、動物園がなくてもできるようになりました。まず、最初の列でas.Date(as.character())を使用して、その列のエントリを日付として読み取ります。次に、 order () コマンドを使用して、最初の列でデータセット全体にインデックスを付ける必要があります。軸その後、時間として表示され始めます。

これがすべて初歩的なものに見える場合は申し訳ありません。私はプログラミング経験のない初心者です。

助けたリンクは次のとおりです。

http://blog.earlh.com/index.php/2009/07/plotting-multiple-series-in-r-part-4-in-a-series/

于 2011-10-07T06:01:05.857 に答える