2016-11-16 9 views
0

は私が積み重ねられbarplot以下のように考えてみましょう:私は一緒にグループ1と2を希望Rのggplot2:カスタムギャップを使用してグループ化バーが

library(ggplot2) 
dfr <- data.frame(x=1:5,y=c(4,6,2,3,6,8,3,6,8,4), 
     z=c("A","A","A","A","A","B","B","B","B","B")) 

ggplot(dfr,aes(x=x,y=y,fill=z))+ 
    geom_bar(stat="identity") 

barplot

、およびグループ3,4,5一緒に。私の考えは2と3の間にもっと広いギャップを持つことです。c(2,4,2,2)のようなカスタムギャップベクトルをギャップに渡すことは可能ですか?私はこの目的のためにファセットを使用したくありません。

+1

ワンストップギャップソリューションは、ここで述べたように、あなたがスペースを必要とし、高さ0のバーを追加することができます http://stackoverflow.com/questions/30100500/specific-spaces -bar-in-a-barplot-ggplot2-r – shreyasgm

+0

[こちら](http://stackoverflow.com/questions/37795648/r-ggplot2-barplot-partial-semi-stack?noredirect=1&lq=1)を参照してください。その中のリンクのheeps。 – Henrik

答えて

0

これはちょっとしたハックですが、目的の結果が得られます。

library(ggplot2) 
dfr <- data.frame(x=1:5,y=c(4,6,2,3,6,8,3,6,8,4), 
     z=c("A","A","A","A","A","B","B","B","B","B")) 
dfr$x2 <- ifelse(dfr$x %in% 1:2, dfr$x, dfr$x+1) 

ggplot(dfr,aes(x=x2,y=y,fill=z))+ 
    geom_bar(stat="identity") + 
    scale_x_continuous("x", breaks = c(1, 2, 4, 5, 6), labels = seq(1:5)) 

enter image description here

関連する問題