2013-08-30 3 views
5

latticeパッケージのxyplotを使用して、私は何年にもわたって時系列をプロットします。私は、この期間が「特別」(戦争など)であったことを示すために、これらの年のいくつかに影を付けた領域を追加します。Rのxyplotで網掛けの背景を取得するには?

些細なことをお詫び申し上げますが、私はそれを行う方法を理解できなかったので、誰かが私を助けてくれるか、少なくとも正しい方向に向けることができれば嬉しいです。私の主な問題は、私がこの問題にどう対処するのか本当にわからないということです。私はまだRに比較的新しい、特にlatticeになっています。ここ

最小例:対応するプロットで

xyplot(rnorm(100) ~ 1:100, type="l", col="black") 

、私は下から描画領域の上部に(45〜65までのx - 値言うから)背景の色を希望薄い灰色で陰になる。

私が今までに見つけた解決策は、baseグラフィックとpolygonの機能を使用していますが、カーブの下または上の領域を暗くすることを意図しています。私は "ちょうど"私のラインの下、または私のラインの上の領域を陰にしたくありません。代わりに、私は一定の時間間隔の全体の背景をシェードしたいと思います。

誰もが私を助けてくれたら、とても感謝しています!

答えて

8

はlatticeExtraパッケージに?panel.xblocksを参照してください:

library(latticeExtra) 
x <- 1:100 
xyplot(rnorm(100) ~ x, type="l", col="black") + 
     layer_(panel.xblocks(x, x > 20, col = "lightgrey")) 

enter image description here

+0

かなり強力に表示されます。 'y = x> 45&y <0'は、x = 45の左側に灰色のバンドを表示しますが、y <0の場合のみです。私はあなたが 'under = TRUE'のデフォルトを持っているので' layer_'を使うことを選んだと思いますか? –

+1

gyplot2-ishというだけではなく、gyplot2-ishのように見えますが、代わりに従来のパネル関数で使用することもできます: 'xyplot(rnorm(100)〜x、type =" l "、col =" black "、panel = function ...){panel.xblocks(x、x> 20、col = "lightgrey"); panel.xyplot(x、...)}) '。 –

3

は、これを試してください

xyplot( 
    rnorm(100) ~ 1:100, type="l", col="black", 
    panel=function (x,y,...){ 
    panel.rect(xleft=45, xright=65,ybottom=-3, ytop=3,col="grey") 
    panel.xyplot(x,y,...) 
    } 
) 

panel.rect()機能は矩形を制御しrect()関数の格子と等価です。それはあなたが有用であるかもしれない様々な設定を持っています。最初に呼び出され、次にxyplot()がその上に置かれます。 ybottomytopのパラメータを好きなように見せるには、少しでも遊ぶ必要があります。

+0

うわー、みんなありがとう、それは簡単でした。あなたのソリューションは間違いなく私を助けます。彼らはまた私にいくつかの新しいことを教えてくれるので、私はこのウェブサイトが大好きです!ある時点で私は十分に熟練してここに貢献することを願っています!ありがとう、良い週末を! – coffeinjunky

3
trellis.focus("panel", 1, 1) 
grid.rect(x =.55, , y=.5, w = .2, height=6, 
    gp = gpar(fill = "light grey")) 
trellis.unfocus() 

これは、@ JohnPaulの解決策とはいくつか違いがあります(彼の答えは良いと思います)。これは、 "ネイティブ座標"に配置する目的のXバンドの中心を使用し、幅を 'range(xlim)/ range(band)'として計算し、既存のプロットを変更します。 grid.rect関数は、panel.rectによって使用されるグリッドパッケージの下位レベルの関数です。私はときどき、このシステムが内部の格子パネルを統合して私を打ち負かすときにこれが役に立ちます。

関連する問題