2013-02-19 30 views
16

これは最初にここで尋ねられた質問の繰り返しです:Indicating the statistically significant difference in bar graphしかし、PythonではなくRを求めました。棒グラフの統計的に有意な違いを示していますR

私の質問はとても簡単です。可能な場合はggplot2を使用して、Rのバープロットを作成したいと思います。このようなものを生み出す。私は周りに検索したが、まったく同じことを尋ねる別の質問を見つけることができません。

bar plot showing error bars and sig. diff marking beween bars

+0

したがって、隣接する列のみですか? A-C、B-D、A-Dのp値はありませんか? –

+0

十分に(あなたのせいではありません)、私のローカルファイアウォールの何かがあなたのイメージを殺しています。あなたはリンクを投稿できますか? –

+0

遅延の申し立て。ここの画像:http://i.stack.imgur.com/3I6El.jpg –

答えて

15

あなたは同様の結果を得るためにgeom_path()annotate()を使用することができます。この例では、適切な位置を自分で決定する必要があります。 geom_path()には、回線を接続するための小さなティックを得るための4つの番号が用意されています。

df<-data.frame(group=c("A","B","C","D"),numb=c(12,24,36,48)) 
g<-ggplot(df,aes(group,numb))+geom_bar(stat="identity") 
g+geom_path(x=c(1,1,2,2),y=c(25,26,26,25))+ 
    geom_path(x=c(2,2,3,3),y=c(37,38,38,37))+ 
    geom_path(x=c(3,3,4,4),y=c(49,50,50,49))+ 
    annotate("text",x=1.5,y=27,label="p=0.012")+ 
    annotate("text",x=2.5,y=39,label="p<0.0001")+ 
    annotate("text",x=3.5,y=51,label="p<0.0001") 

enter image description here

+0

ありがとう - これは少しぞっとするが、これは私が欲しいものです!私はそれを行うために容易に利用可能な、一般的な(自動!)方法はないと思います –

+0

Oof、facetingを使用するときにgeom_pathを制御する方法はありますか? –

+0

@JimBo次に、geom_path()値のデータフレームが必要になります。このデータフレームでは、ファセットに使用されるのと同じ名前とレベルの列も含める必要があります。 –

3

I上から提案された方法を使用したが、私はgeom_path関数より線を製造するためのより容易な注釈機能を発見しました。単に "テキスト"の代わりに "セグメント"を使用してください。セグメントごとに分割し、各線分の開始および終了のxおよびy値を定義する必要があります。 3つのラインセグメントを作るための

例:

annotate("segment", x=c(1,1,2),xend=c(1,2,2), y= c(125,130,130), yend=c(130,130,125)) 
11

が、私は、これは古い質問とDidzis Elfertsによって答えであることを知っているが、すでに問題の一つの解決策を提供します。

library(ggplot2) 
library(ggsignif) 

ggplot(iris, aes(x=Species, y=Sepal.Length)) + 
    geom_boxplot() + 
    geom_signif(comparisons = list(c("versicolor", "virginica")), 
       map_signif_level=TRUE) 

Boxplot with significance bar:あなただけの単層geom_signifを追加うんざりするほどあなたのプロットにgeom_pathannotateを追加するのではなく、ggsignif

:しかし、私は最近、追加的意義バーの全体のプロセスを簡素化ggplot拡張を作成しました

パッケージの全文はCRANです。

関連する問題