0
私は小さなデータフレームを持っており、グループ全体の平均レベルを示す線で棒グラフを作成したいと思います。ggplot2の棒グラフグループ
データフレーム:
cpcost = c("Coll.Punishment","Coll.Punishment", "Ind.Punishment",
"Ind.Punishment")
color = c(0,1,0,1)
mysum = c(0.3408240, 0.2935982, 0.3460490, 0.1267057)
genlevel = c(0.3111111,0.3111111, 0.2181818, 0.2181818)
temp = as.data.frame(cbind(cpcost,color,mysum,genlevel))
だから、結果は次のようになります。
問題が(下記参照)、今私は本当にUGLY方法ででやっているということです。 私は基本的に横のエラーバーを最初に追加します。しかし、その後、各バーについてのエラーバーの間に小さなスペースがあるので:
私はまた、エラーバーの間のこの小さなスペースを埋めるために、水平線を引きます。 (私が唯一の水平バーを描くと、それはバーの中央から始まります)。
私は同じ結果に到達するためのより多くのエレガントな方法があることを信じています。 どうすればいいですか?
ありがとうございます!
ggplot(temp, aes(group=cpcost),
y = genlevel) +
geom_bar(stat = "identity",aes(x = factor(color),
y = mysum,
group=cpcost,
fill = factor(color))) +
geom_errorbar(aes(x=factor(color),
y=genlevel,
ymin=genlevel,
ymax=genlevel,
group=cpcost
)) +
geom_line(aes(x=factor(color), y=genlevel,group=cpcost)) +
labs(x = "Round", y = "Share of Emptying") +
scale_fill_discrete(name='Crime',
labels=c("No", "Yes")) +
ggtitle('Whistleblowing')+
facet_grid(~cpcost)
完璧!どうもありがとう! –