2012-02-27 9 views
5

latticeまたはDotplot()を使用して、Hmiscを使用して描画しています。私は、デフォルトパラメータを使用すると、私は小さな垂直終末ドットプロット内のエラーバーの垂直方向の終点を描画します

-O -

ずにエラーバーをプロットすることができますが、私は

を取得したいと思い| - o-- |

私は

を得ることができます知っている| -O - |

私はplotrixlatticeExtraからsegplot()からcentipede.plot()を使用しますが、これらのソリューションは私にDotplot()ような素敵なコンディショニングオプションを与えることはありません。私は、などのエラーバーラインの色、幅を変更するためにうまく機能plot.linepar.settingsで再生しようとしましたが、これまでのところ、私は垂直方向の終末を追加するには失敗してきた:

require(Hmisc) 
mean = c(1:5) 
lo = mean-0.2 
up = mean+0.2 
d = data.frame (name = c("a","b","c","d","e"), mean, lo, up) 
Dotplot(name ~ Cbind(mean,lo,up),data=d,ylab="",xlab="",col=1,cex=1, 
     par.settings = list(plot.line=list(col=1), 
         layout.heights=list(bottom.padding=20,top.padding=20))) 

enter image description here

私はggplot2を使用するソリューションを教えてください...

+0

出発点は、すなわち 'panel.bwplot'を' bwplot'を使用してパネルを修正する可能性があります。 – Andrie

+0

以下のスレッドが役に立つかもしれません。 http://r.789695.n4.nabble.com/dotplots-with-error-bars-td4382474.html http://tolstoy.newcastle.edu.au/R/e2/help/06/10/2791.html –

答えて

6

Dotplot()の代わりにbarchart()と私はこれまで同じニーズがありました。

私の解決策は、カスタマイズされたパネル機能を作成することでした。(1)最初に元のパネル機能を実行します。 (2)次にpanel.arrows()を使用してエラーバーを追加します(頭のエッジがシャフトと90度の角度をなす2つの矢印を使用)。

は、ここでそれはDotplot()でどのように見えるかです:

# Create the customized panel function 
mypanel.Dotplot <- function(x, y, ...) { 
    panel.Dotplot(x,y,...) 
     tips <- attr(x, "other") 
     panel.arrows(x0 = tips[,1], y0 = y, 
        x1 = tips[,2], y1 = y, 
        length = 0.15, unit = "native", 
        angle = 90, code = 3) 
} 

# Use almost the same call as before, replacing the default panel function 
# with your customized function. 
Dotplot(name ~ Cbind(mean,lo,up),data=d,ylab="",xlab="",col=1,cex=1, 
     panel = mypanel.Dotplot, 
     par.settings = list(plot.line=list(col=1), 
         layout.heights=list(bottom.padding=20,top.padding=20))) 

enter image description here

+0

いいね!これらのパネル関数は魔法を使うことができると思っていましたが、格子のマニュアルは単純ではなく、パラメータを変更するために多くのアプローチがあります。歓声メイト! –

+0

うーん、もう2つの条件を適用するとうまくいかないので、問題があります。別の2つの条件を追加することでそれを見てください: 'Dotplot(name〜Cbind(mean、lo、up)| condX * condY、...)'。何か案は? –

+0

@ GeekOnAcid - 今は時間がない。私がお勧めしたいのは、カスタマイズされたパネル関数の中に 'browser()'という行を置くことです(最初の行が行うはずです)。次に、そのパネル関数が呼び出されたときに実行を中断し、そこを突き抜けて 'tips < - attr(x、" other ")'がまだ正しいデータを抽出しているかどうかを調べることができます。 ( '|'で調整するのではなく 'groups ='を使用していた場合は、 'パネル全体を処理する必要があるかもしれません。superpose() 'murass、しかし、おそらくここでは問題ではないと私は信じています。 –

関連する問題