我一直在遇到一个看起来很简单的问题:用连续的x轴制作分组箱线图。
以下是一些最小数据:
df <- cbind(expand.grid(x=1:10, rep=1:20, fill=c("A", "B")), y=runif(400))
这是我想要的;你会看到我已经强制使x轴离散化:
ggplot(df, aes(x=as.factor(x), y=y, fill=fill)) + geom_boxplot()
如果我在没有分组的情况下将x
保持连续,那么我得到的结果如下:
ggplot(df, aes(x=x, y=y, fill=fill)) + geom_boxplot()
添加分组后,颜色消失了:
ggplot(df, aes(x=x, y=y, group=x, fill=fill)) + geom_boxplot()
明确一点,在geom_point
中我想要的是:
ggplot(df, aes(x=x, y=y, group=x, color=fill)) + geom_point(position=position_dodge(width=.7))
...但如果我尝试在箱线图中设置一个躲避(dodge):
ggplot(df, aes(x=x, y=y, color=fill)) + geom_boxplot(position=position_dodge(width=.7))
有什么提示吗?我已经尝试了搜索:这个问题 解决了连续变量的箱线图,但没有解决颜色问题;这个问题 让我想知道是否需要设置交互作用,但似乎无法得到所需的结果。任何帮助都将不胜感激!
x
上按区间分组来实现类似的效果(取决于数据是否适用)。ggplot(df, aes(x=cut_interval(x=x, length=1), y=y, fill=fill)) + geom_boxplot()
- S Rivero