簡體   English   中英

ggplot2 箱線圖寬度

[英]ggplot2 width of boxplot

我試圖制作 2 個單獨的圖,我想在我的海報中並排展示它們(我需要將它們分開並且不能使用 facet_wrap)。 其中一個圖有幾個箱線圖,而第二個 plot 只有一個。 當我將兩個圖並排放置時,如何操縱箱線圖的寬度,使第二個箱線圖與 plot 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)

Plot 1情節 1:

情節2情節 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 文本和刻度

主題(主題(axis.title.x = element_blank(),axis.text.x = element_blank(),axis.ticks.x = element_blank())

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM