0

我有以下箱线图:

df1 <- data.frame(f = c("a","b","c","c","c"), x=c(1,1,1,5,9))
qplot(factor(f),as.numeric(x),data=df1) + geom_boxplot()

对于箱线图的两个因素,“箱”只是一条线。是否可以增加这两个因素的盒子的大小,从而显示一个微观的白盒子?或者我可以手动提供默认的最小宽度?

4

1 回答 1

1

你可能不应该这样做,因为这至少有点不诚实。但是,如果你真的准备好了,这里有一个可能有用的技巧:

ggplot(df1, aes(x = factor(f), y = as.numeric(x))) +
  geom_boxplot(size = 2) + 
  geom_boxplot(size = 1, color = "white")

如果您想保留诚实箱线图的外观,您可以执行类似的操作

library('plyr')
flat <- subset(ddply(df1, .(f), summarise, flat = length(unique(x))), flat == 1)$f
flat <- df1[df1$f %in% flat,]

ggplot(df1, aes(x = factor(f), y = as.numeric(x))) +
  geom_boxplot()
  geom_boxplot(data = flat, size = 2) + 
  geom_boxplot(data = flat, size = 1, color = "white")
于 2013-11-13T00:51:24.577 回答