NWa*_*ers 6 plot grouping r ggplot2 boxplot
我一直在遇到一些似乎很简单的问题:带有连续x轴的分组箱图.
这是最小的数据数据:
df <- cbind(expand.grid(x=1:10, rep=1:20, fill=c("A", "B")), y=runif(400))
Run Code Online (Sandbox Code Playgroud)
这就是我想要的; 你会看到我强迫x轴离散:
ggplot(df, aes(x=as.factor(x), y=y, fill=fill)) + geom_boxplot()
Run Code Online (Sandbox Code Playgroud)
这是我在x连续离开时得到的,没有分组:
ggplot(df, aes(x=x, y=y, fill=fill)) + geom_boxplot()
Run Code Online (Sandbox Code Playgroud)
当我添加分组时,颜色消失:
ggplot(df, aes(x=x, y=y, group=x, fill=fill)) + geom_boxplot()
Run Code Online (Sandbox Code Playgroud)
要清楚,我想要的geom_point是:
ggplot(df, aes(x=x, y=y, group=x, color=fill)) + geom_point(position=position_dodge(width=.7))
Run Code Online (Sandbox Code Playgroud)
...但是如果我尝试在箱线图中设置闪避:
ggplot(df,aes(x = x,y = y,color = fill))+ geom_boxplot(position = position_dodge(width = .7))
有小费吗?我试过四处寻找:这个问题解决了连续的箱形图,但没有着色问题; 这个问题让我想知道我是否需要设置一个交互,但似乎没有得到预期的结果.任何帮助将非常感谢!
Hen*_*rik 11
来自?aes_group_order:
默认情况下,该组设置为图中所有离散变量的交互.
在您的数据中,您只有一个离散变量"fill".但是,我们希望将数据发送到分组既 "补" 和 "×".因此,我们需要使用group参数指定所需的分组.是的,你interaction是对的,是要走的路.
首先,稍微小一点的数据集(更容易将数据链接到输出):
d <- data.frame(x = rep(c(1, 2, 4), each = 8),
grp = rep(c("a", "b"), each = 4),
y = sample(24))
Run Code Online (Sandbox Code Playgroud)
然后是情节,我们按"x"和"grp"(interaction(x, grp))的不同组合对数据进行分组,并按"grp"分组fill:
ggplot(d, aes(x = x, y = y, group = interaction(x, grp), fill = grp)) +
geom_boxplot()
Run Code Online (Sandbox Code Playgroud)