ggplot2の棒グラフの棒間のスペースを増やすにはどうすればよいですか?
4 に答える
width
以下に示すように、いつでもパラメーターを操作できます。
df <- data.frame(x=factor(LETTERS[1:4]), y=sample(1:100, 4))
library(ggplot2)
ggplot(data=df, aes(x=x, y=y, width=.5)) +
geom_bar(stat="identity", position="identity") +
opts(title="width = .5") + labs(x="", y="") +
theme_bw()
次の他の設定と比較してくださいwidth
:
ここまでは順調ですね。ここで、2つの要因があるとします。等間隔の並置されたバーで遊びたい場合(inと一緒に使用するspace
場合など)、使用はそれほど簡単ではありません。バーの幅を変更することはできますが、隣接するバーの間にスペースを追加することはできません(便利なものは見つかりませんでした)。 Googleのソリューション)。私はそのようなものになってしまいました:beside=TRUE
barplot()
geom_bar(position="dodge")
df <- data.frame(g=gl(2, 1, labels=letters[1:2]), y=sample(1:100, 4))
x.seq <- c(1,2,4,5)
ggplot(data=transform(df, x=x.seq), aes(x=x, y=y, width=.85)) +
geom_bar(stat="identity", aes(fill=g)) + labs(x="", y="") +
scale_x_discrete(breaks = NA) +
geom_text(aes(x=c(sum(x.seq[1:2])/2, sum(x.seq[3:4])/2), y=0,
label=c("X","Y")), vjust=1.2, size=8)
$ x $軸に使用されるベクトルは、data.frameに「挿入」されるため、必要に応じて外側の間隔を変更し、width
内側の間隔を制御できます。$ x $軸のラベルは、を使用して拡張される場合がありscale_x_discrete()
ます。
ファクターバー間のスペースには、
ggplot(data = d, aes(x=X, y=Y, fill=F))
+ geom_bar(width = 0.8, position = position_dodge(width = 0.9))
geom_barの幅は、x軸に関連するバーの幅を制御し、position_dodgeの幅は、x軸に関連して両方のバーに与えられるスペースの幅を制御します。幅をいじって、好きなものを見つけてください。
どうもありがとうございました!私も同じ問題を抱えていましたが、あなたは私がそれを解決するのを手伝ってくれました。geom_textを使用してXラベルを追加する代わりに、scale_x_continuousを使用しました(以下を参照)
geom_text(aes(x=c(sum(x.seq[1:2])/2, sum(x.seq[3:4])/2), y=0,
label=c("X","Y")), vjust=1.2, size=8)
と取り換える
scale_x_continuous(breaks=c(mean(x.seq[1:2]), mean(x.seq[3:4])), labels=c("X", "Y"))
POSIXltバー間のスペースについては、1日の秒数から幅を調整する必要があります
# POSIXlt example: full & half width
d <- data.frame(dates = strptime(paste(2016, "01", 1:10, sep = "-"), "%Y-%m-%d"),
values = 1:10)
ggplot(d, aes(dates, values)) +
geom_bar(stat = "identity", width = 60*60*24)
ggplot(d, aes(dates, values)) +
geom_bar(stat = "identity", width = 60*60*24*0.5)