0

Rとポリゴンを使用して、プロットの線の下の領域を線からx軸まで陰影付けしようとしていますが、ここで何が間違っているのかわかりません。

シェーディングは、y 範囲の中間にあるポイントを使用して、0 ではなく x 軸からシェーディングします。

データセット ratioresults は Zoo オブジェクトですが、y 値を as.numeric および as.vector に強制しようとしたところ、同じ結果が得られたので、それは問題ではないと思います。

コード:

plot(index(ratioresults),ratioresults$ratio, type="o", col="red")
polygon(c(1,index(ratioresults),11),c(0, ratioresults$ratio, 0) , col='red')

ここに画像の説明を入力

4

2 に答える 2

2

なにindex(ratioresults)?シンプルな動物園のオブジェクトについては、次のように表示されます。

> index(x)
[1] "2003-02-01" "2003-02-03" "2003-02-07" "2003-02-09" "2003-02-14"

これはDateオブジェクトのベクトルです。このベクトルに 1 と 11 の値を前または後に追加しようとしています。それはうまくいきません。

再現可能な例を次に示します。

x=zoo(matrix(runif(11),ncol=1),as.Date("2012-08-01") + 0:10)
colnames(x)="ratio"
plot(index(x),x$ratio,type="o",col="red",ylim=c(0,1))
polygon(index(x)[c(1,1:11,11)],c(0,x$ratio,0),col="red")

あなたとの違い:

  1. 私は自分のものを呼び出しますx

  2. プロットを設定ylimしました。プロットが Y 軸の 0 からどのように開始されたのかわかりません。

  3. 1 と 11 自体ではなく、最初と 11 番目 (最後) のポイントの x 値を使用してポリゴンを完成させます。

于 2013-10-08T11:01:01.093 に答える
0
#With an example dataset: please provide one when you need help!
ratioresults<-as.zoo(runif(10,0,1))
plot(index(ratioresults),ratioresults, type="o", col="red", 
     xaxs="i",yaxs="i", ylim=c(0,2))
polygon(c(index(ratioresults),rev(index(ratioresults))),
        c(as.vector(ratioresults),rep(0,length(ratioresults))),col="red")

あなたの質問の問題は、x 軸がデフォルトで特定の y 値によって定義される線ではないことですpolygonylim(ここでは 0 を選択しました)。どのような値を選択しても、 を使用してプロットがその値で正確に停止するように指定する必要がありますyaxs="i"
また、x 軸に選択した値を使用してポリゴンを構築する必要があります。

于 2013-10-08T11:13:17.050 に答える