簡體   English   中英

如何在ggplot2中控制箱線圖的x位置?

[英]How can I control the x position of boxplots in ggplot2?

首先,設置階段的快速示例:

set.seed(123)
dat <- data.frame( 
  x=rep( c(1, 2, 4, 7), times=25 ), 
  y=rnorm(100), 
  gp=rep(1:2, each=50) 
)

p <- ggplot(dat, aes(x=factor(x), y=y))
p + geom_boxplot(aes(fill = factor(gp)))

我想制作一個類似的情節,除了控制每組箱圖的x位置。 我的第一個猜測是使用非因子x美學控制沿着這些箱形圖的x軸的位置。 然而,一旦我嘗試這樣做,似乎geom_boxplot並不像我希望的那樣解釋美學。

p + geom_boxplot( aes(x=x, y=y, fill=factor(gp)) )

特別是,當geom_boxplot是非因素時,它們似乎以某種方式折疊所有x值。

有沒有辦法用ggplot2控制箱線圖的x位置? 要么通過指定因子美學的每個層次之間的距離,要么更巧妙地使用非要素美學,否則?

您可以使用scale_x_discrete()來設置x軸的位置(刻度)。

p <- ggplot(dat, aes(x=factor(x), y=y))
p + geom_boxplot(aes(fill = factor(gp))) + 
    scale_x_discrete(limits=1:7)

您也可以使用group美學來做到這一點。 但是,我不確定為什么你不能只將x傳遞給該group 這不起作用:

ggplot() + 
  geom_boxplot(data=dat, aes(x=x, y=y, fill=factor(gp), group=x))

但這樣做:

ggplot() + 
  geom_boxplot(data=dat, aes(x=x, y=y, fill=factor(gp), group=paste(x, gp)))

暫無
暫無

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

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