ggplot2 箱线图的宽度
ggplot2 width of boxplot
我试图制作 2 个独立的图,我想在我的海报中并排展示它们(我需要将它们分开并且不能使用 facet_wrap)。其中一个地块有多个箱线图,而第二个地块只有一个。当我将两个图并排放置时,如何操纵箱线图的宽度,使第二个箱线图的尺寸与图 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
情节2
我建议用第一个图中 region
的类别数除以第二个图中框的宽度。
p2 <- ggplot(data=df2,aes(x=region2,y=tvalues2,color=sex2)) +
geom_boxplot(width=0.5/length(unique(df1$region)))
如果是单个箱线图,如下例所示:
a<- data.frame(obs=rep("A", 50),
value=rnorm(50, 100, 50))
ggplot(a, aes(y=value))+
geom_boxplot()
我们可以建立一个假的 x/y 轴并建立一个轴限制,所以 geom_boxplot() 的宽度选项决定了盒子的宽度
ggplot(a, aes(y=value, x=0))+
geom_boxplot(width=0.7) +
xlim(-1,1)
您可以添加以下内容以删除所有 x.axis 文本和勾号
theme(theme(axis.title.x = element_blank(),
axis.text.x = element_blank(),
axis.ticks.x = element_blank())
我试图制作 2 个独立的图,我想在我的海报中并排展示它们(我需要将它们分开并且不能使用 facet_wrap)。其中一个地块有多个箱线图,而第二个地块只有一个。当我将两个图并排放置时,如何操纵箱线图的宽度,使第二个箱线图的尺寸与图 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
情节2
我建议用第一个图中 region
的类别数除以第二个图中框的宽度。
p2 <- ggplot(data=df2,aes(x=region2,y=tvalues2,color=sex2)) +
geom_boxplot(width=0.5/length(unique(df1$region)))
如果是单个箱线图,如下例所示:
a<- data.frame(obs=rep("A", 50),
value=rnorm(50, 100, 50))
ggplot(a, aes(y=value))+
geom_boxplot()
我们可以建立一个假的 x/y 轴并建立一个轴限制,所以 geom_boxplot() 的宽度选项决定了盒子的宽度
ggplot(a, aes(y=value, x=0))+
geom_boxplot(width=0.7) +
xlim(-1,1)
您可以添加以下内容以删除所有 x.axis 文本和勾号
theme(theme(axis.title.x = element_blank(), axis.text.x = element_blank(), axis.ticks.x = element_blank())