私は、平均値と標準偏差のバーを3レベルの因子で単純なプロットにプロットしようとしています。インターネットで2時間検索した後、RbookとRgraphsの本を確認しても、まだ答えが見つかりません。これは非常に単純な質問だからだと思います...さらに、Rがどのように機能するかはまだよくわかりません。
カテゴリ、平均、標準偏差の3つの列を持つ単純なデータフレームがあります。
this one のように、カテゴリ別の平均とそのsdバーを使用してプロットを実行したいと思います。
私のデータフレームは次のようになります
color mean.temp sd
black 37.93431 2.267125
red 37.01423 1.852052
orange 36.61345 1.339032
このばかげた質問をしてすみませんが、私の簡単な質問に対する簡単な答えを心から見つけることができませんでした。
よろしくお願いします(Rプロットに関する基本的な文献についてのアドバイスもありがたいです)。
データを保持する_data.frame
_を作成します。
_foo <- data.frame(color=c("black","red","orange"),
mean.temp=c(37.93431,37.01423,36.61345),
sd=c(2.267125,1.852052,1.339032))
_
ここで、最初に平均をドットとしてプロットし、水平方向(xlim
)と垂直方向(ylim
)に十分なスペースがあることを確認し、x軸注釈(_xaxt="n"
_)とすべてを抑制します。軸のラベル付け(_xlab="", ylab=""
_)。
_plot(1:3,foo$mean.temp,pch=19,xlab="",ylab="",xaxt="n",xlim=c(0.5,3.5),
ylim=c(min(foo$mean.temp-foo$sd),max((foo$mean.temp+foo$sd))))
_
次に、標準偏差を線としてプロットします。 3つの別々のlines
コマンドを使用することもできます。これは、読みやすい場合があります。このように、最初にrbind()
を介してデータを行列に収集します。 Rはこれらの行列を自動的にベクトルに変換し、リサイクルします。 NA
sが存在するため、1行の終わりを次の行の始まりに結合しません。 (NAを削除して、何が起こるかを確認してください。)
_lines(rbind(1:3,1:3,NA),rbind(foo$mean.temp-foo$sd,foo$mean.temp+foo$sd,NA))
_
最後に、x軸に注釈を付けます。
_axis(side=1,at=1:3,labels=foo$color)
_
ggplot
の場合:
データの読み取り:
df=read.table(text=' color mean.temp sd
1 black 37.93431 2.267125
2 red 37.01423 1.852052
3 orange 36.61345 1.339032',header=TRUE)
プロット:
ggplot(df, aes(x=color, y=mean.temp)) +
geom_errorbar(aes(ymin=mean.temp-sd, ymax=mean.temp+sd), width=.2) +
geom_line() +
geom_point()
出力