web-dev-qa-db-ja.com

ggplot2ボックスプロットの幅

ポスターに並べて表示したい2つの個別のプロットを作成しようとしていました(それらを個別に作成する必要があり、facet_wrapを使用できません)。 1つのプロットには複数の箱ひげ図があり、2番目のプロットには1つしかありません。 2つのプロットを並べて配置するときに、2番目のボックスプロットがプロット1の個々のボックスプロットのいずれかの幅と同じ寸法になるようにボックスプロットの幅を操作するにはどうすればよいですか?再現可能な例:

tvalues <- sample(1:10000,1200)
sex <- c(rep('M',600),rep('F',600))
region <- c('R1','R2','R3','R4','R5')
df1 <- data.frame(tvalues,sex,region)

tvalues2 <- sample(1:10000,200)
sex2 <- sample(c('M','F'),200,replace=T)
region2 <- 'R6'
df2 <- data.frame(tvalues2,sex2,region2)

p1 <- ggplot(data=df1,aes(x=region,y=tvalues,color=sex)) + 
geom_boxplot(width=0.5)
p2 <- ggplot(data=df2,aes(x=region2,y=tvalues2,color=sex2)) + 
geom_boxplot(width=0.5)

プロット1 plot 1:

プロット2 plot 2:

8
bsmith

2番目のプロットのボックスの幅を、最初のプロットのregionのカテゴリの数で割ることをお勧めします。

p2 <- ggplot(data=df2,aes(x=region2,y=tvalues2,color=sex2)) + 
geom_boxplot(width=0.5/length(unique(df1$region)))

enter image description here

12
Marco Sandri