4

ggplot を使用して次のプロットを実行したいと思います。

グループごとの信頼区間の GgPlot

これは私のdfの構造の例です(一種の、データに合わせてスケーリングしないように描画します):

example.df = data.frame(mean = c(0.3,0.8,0.4,0.65,0.28,0.91,0.35,0.61,0.32,0.94,0.1,0.9,0.13,0.85,0.7,1.3), 
                            std.dev = c(0.01,0.03,0.023,0.031,0.01,0.012,0.015,0.021,0.21,0.13,0.023,0.051,0.07,0.012,0.025,0.058),
                            class = c("1","2","1","2","1","2","1","2","1","2","1","2","1","2","1","2"),
                            group = c("group1","group2","group1","group2","group1","group2","group1","group2","group1","group2","group1","group2","group1","group2","group1","group2"))

このデータ フレームは 16 の複製で構成され、それぞれに特定の平均値と特定の標準偏差があります。

複製ごとに、信頼区間をプロットしたいと思います。図の例の大きな点は平均推定値であり、棒の長さは標準偏差の 2 倍です。

また、同じ行に 2 つの異なるレプリケートをプロットしたいと思いますが、異なる色で、クラスごとに色付けします。赤はクラス 1、青はクラス 2 です。

最後に、プロット全体を 2 つの異なるグループに対応する 2 つのパネル (同じ行) に分割したいと思います。

このサイトhttp://www.cookbook-r.com/Graphs/Plotting_means_and_error_bars_(ggplot2)/を調べてみましたが、X個のグループを持つこの構造のデータフレームに対してこれを自動化する方法がわかりませんでした(この場合は 2)、K はグループごとに複製されます (この場合、クラス 1 の 8、4、クラス 2 の 4)。

ggplot または標準の r pkg ライブラリを使用してこれを行う良い方法はありますか?

4

1 に答える 1

6

あなたが提供したサンプル データ フレームは適切な方法で構築されていないgroup1class 1思いgroup2ます2。そこで、新しいデータ フレームを作成replicateし、複製の数を示すという名前の新しい列も追加しました (それぞれに 4 つの複製 (2 つのclass値を持つgroup))。

example.df = data.frame(mean = c(0.3,0.8,0.4,0.65,0.28,0.91,0.35,0.61,0.32,0.94,0.1,
                                0.9,0.13,0.85,0.7,1.3), 
                        std.dev = c(0.01,0.03,0.023,0.031,0.01,0.012,0.015,0.021,0.21,
                                  0.13,0.023,0.051,0.07,0.012,0.025,0.058),
                        class = c("1","2","1","2","1","2","1","2","1","2","1",
                                 "2","1","2","1","2"),
                        group = rep(c("group1","group2"),each=8),
                        replicate=rep(rep(1:4,each=2),time=2))

geom_pointrange()これで、信頼区間でポイントを取得しfacet_wrap()、各グループのプロットを作成するために使用できます。

ggplot(example.df,aes(factor(replicate),
               y=mean,ymin=mean-2*std.dev,ymax=mean+2*std.dev,color=factor(class)))+
  geom_pointrange()+facet_wrap(~group)

ここに画像の説明を入力

于 2013-10-26T12:01:14.793 に答える