2016-06-27 18 views
1

ggplot2を使ってフォレストプロットを作りたいと思います。初心者のための森プロットggplot2を使った簡単な例

目的は、X1、X2、X3、X4、X5、およびX6という名前の6行のフォレストプロットを作成することです。これらのラベルは左側に表示されます。 x = 1に垂直の破線が表示されます。さらに、プロットの右側には、各行に95%CIが続く平均値が表示されます。

mean <- c(1.29,0.76,2.43,1.68,1.22,1.7) 
lower <- c(0.84,0.50,1.58,1.1,0.8,1.11) 
upper <- c(1.95,1.16,3.67,2.54,1.85,2.56) 

X1は等々1.29(0.84,1.95)に対応し:

私のデータは、平均、下位95%の間隔、及び上部95%間隔の後ました。

これはあまりにも多くのことを望んでいないと私はこのようなRの森のプロットを描画に慣れていない人のためのガイドとして役立つことを願って願っています。

答えて

8

gを使うのが良いです。基本的な構文は、さまざまな種類のプロットに適用されます。

geom_pointrangeの単純な森林プロットの唯一のトリックは、ggplotのラインプロットは、通常、ラベルをx軸に、量的なデータをy軸に置きます。これは、その後、プロットを作成する前に、ラベルの順序を逆にすることによって、「coord_flip」機能を使用して変更できます。

label <- paste0("X", 1:6) 
mean <- c(1.29,0.76,2.43,1.68,1.22,1.7) 
lower <- c(0.84,0.50,1.58,1.1,0.8,1.11) 
upper <- c(1.95,1.16,3.67,2.54,1.85,2.56) 

df <- data.frame(label, mean, lower, upper) 

# reverses the factor level ordering for labels after coord_flip() 
df$label <- factor(df$label, levels=rev(df$label)) 

library(ggplot2) 
fp <- ggplot(data=df, aes(x=label, y=mean, ymin=lower, ymax=upper)) + 
     geom_pointrange() + 
     geom_hline(yintercept=1, lty=2) + # add a dotted line at x=1 after flip 
     coord_flip() + # flip coordinates (puts labels on y axis) 
     xlab("Label") + ylab("Mean (95% CI)") + 
     theme_bw() # use a white background 
print(fp) 

enter image description here

+0

ありがとうございます!次のいずれかの方法:各行の右側の平均値とCI値(X1の場合は1.29(0.84,1.95))を示しますか? – ykl

+0

私は自分自身に答える見つけることができた: FP + geom_text(AES(Y = labpos、ラベル= meanci、hjust = 0))labposが希望Yの軸に同じ値ieのベクトルである ラベルはbeであり、meanciは文字、すなわち1.29(0.84,1.95)などです。 – ykl

関連する問題