[英]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.