2

次のようなデータフレームがあります

    A   B   C   D   E   F
2003-07 445 48  1126    512 277 677
2003-08 429 77  1179    583 320 675
2003-09 421 80  1077    488 288 627

これらの時系列を同じグラフにプロットしたいと思います。また、ABC を同じ色 (青) にし、その他を黒にしたいと考えています。だから私は使う

ts.plot(df,col=c(rep("blue",3),rep("black",3)))

これにより、正しい時系列プロットが作成されますが、色が間違った系列に適用されます: ABC は青と黒の混合であり、DE F も同様です。問題。)

ts.plot() はどのような順序で使用されますか?

編集

df <- structure(list(X = structure(1:3, 
.Label = c("2003-07", "2003-08", "2003-09"), class = "factor"), 
 A = c(445L, 429L, 421L), B = c(48L, 77L, 80L),
 C = c(1126L, 1179L, 1077L), D = c(512L, 583L, 488L ), 
 E = c(277L, 320L, 288L), FF = c(677L, 675L, 627L)), 
.Names = c("X", "A", "B", "C", "D", "E", "FF"), 
class = "data.frame", row.names = c(NA, -3L))
4

1 に答える 1

5
ts.plot(df,col=c(rep("blue",3),rep("black",3)))

絶対に注文通りに描いていると思いますA-B-C-D-E-F。そう...

A     B     C     D     E     F
Blue  Blue  Blue  Black Black Black 

ここに画像の説明を入力

A/B/Cの値を合わせると…

          A  B    C
2003-07 445 48 1126
2003-08 429 77 1179
2003-09 421 80 1077

445->429->421... 3 つの青い線が& 48->77->80&からのものであることがわかります1126->1179->1077。これは、指定したものと実際に一致します。

余談ですが、プロット呼び出しを次のように単純化できます。

ts.plot(df,col=rep(c("black","blue"),each=3))

...each=関数呼び出しの一部を使用して。

編集::

あなたdputの を見ると、グラフは であり、プロット時にそのように解釈されるため、ラベルもdf$X値としてプロットしているように見えます。1,2,3factor

元のプロットからラベルを削除し、再度追加するには、次のコードを試してください。

ts.plot(df[-1],col=c(rep("blue",3),rep("black",3)),gpars=list(xaxt="n"))
axis(1,labels=as.character(df$X),at=1:3)
于 2012-09-20T02:06:59.480 に答える