绘制误差线position = "dodge"
最近让我很头疼......奇怪的是,用美学shape
或fill
(不应该适用于误差线)来躲避它们似乎效果很好。然而,以美学方式躲避group
将酒吧置于意想不到的位置。我想知道这是否可能是一个 ggplot2 错误。
我喜欢在条形图或箱线图后面放置自定义误差线。有时我会为情节的不同元素赋予特殊的颜色。出于这个原因,我经常aes()
不包含在ggplot()
函数中,而是包含在 geoms 或 stats 中。
这是“放置良好”错误栏的示例:
library(ggplot2)
library(dplyr)
ToothGrowth %>%
mutate(dose = factor(dose)) %>%
ggplot(aes(dose, len)) +
stat_boxplot(aes(fill = supp), geom = "errorbar", position = "dodge") +
geom_boxplot(aes(fill = supp), position = "dodge", coef = 0)
这会产生警告Warning: Ignoring unknown aesthetics: fill
。使用aes(shape = supp)
打印相同的图。
我希望同样的情节,但没有通过用“组”(aes(group = supp)
)交换填充/形状的警告。这不会产生警告,但会产生非常意外的结果:
ToothGrowth %>%
mutate(dose = factor(dose)) %>%
ggplot(aes(dose, len)) +
stat_boxplot(aes(group = supp), geom = "errorbar", position = "dodge") +
geom_boxplot(aes(fill = supp), position = "dodge", coef = 0)
有人会对这种行为做出解释吗?不应该在闪避位置分组aes(group = ...)
并aes(fill = ...)
表现相似吗?