R ggplot2中分组箱线图的默认间距:如何导出正确的位置\减淡宽度以对齐几何图形?

R ggplot2中分组箱线图的默认间距:如何导出正确的位置\减淡宽度以对齐几何图形?,r,ggplot2,R,Ggplot2,这可能是一个骗局,但我还没有找到确切的解决方案,我需要在这里。出于教学目的,我需要更多的答案:我已经制作了一个看起来像我想要的那样的情节,但我想向ggplot初学者解释它到底为什么有效。问题是,为什么position\u dodge(width=0.75)参数使stat\u summary中的点与分组箱线图对齐?我通过反复试验找到了这个数字,但找不到导致0.75宽度“正确”的默认间距值。这个值在哪里找到 雷普雷克斯 set.seed(1) g1mean首先,看起来你的点并没有与每个方框的中心对齐

这可能是一个骗局,但我还没有找到确切的解决方案,我需要在这里。出于教学目的,我需要更多的答案:我已经制作了一个看起来像我想要的那样的情节,但我想向ggplot初学者解释它到底为什么有效。问题是,为什么
position\u dodge(width=0.75)
参数使
stat\u summary
中的点与分组箱线图对齐?我通过反复试验找到了这个数字,但找不到导致0.75宽度“正确”的默认间距值。这个值在哪里找到

雷普雷克斯
set.seed(1)

g1mean首先,看起来你的点并没有与每个方框的中心对齐
width=
应该刚好为0.84左右,使其更完美

但这并不是你问题的答案。您的问题的答案是要认识到,实际上,
position=position\u dodge()
也应用于
geom\u箱线图
调用
ggplot2
试图变得智能,当您提供一个
fill=
美学使用时,
ggplot2
意识到这意味着您希望对箱线图几何图形使用回避。默认情况下,不要期望所有几何图形都有这种行为,但箱线图就是这种情况

这里真正的答案是,为了使您的点在两者之间对齐,您应该为
position=
提供相同的值。您甚至可以在
ggplot
调用之外指定:

pos <- position_dodge(width=0.9)

ggplot(dat, aes(x=g1, fill=g2, y=y)) +
  geom_boxplot(position=pos) +
  stat_summary(fun = mean, geom = 'point', color = 'blue', position = pos)

pos首先,看起来你的积分并没有与每个方框的中心对齐
width=
应该刚好为0.84左右,使其更完美

但这并不是你问题的答案。您的问题的答案是要认识到,实际上,
position=position\u dodge()
也应用于
geom\u箱线图
调用
ggplot2
试图变得智能,当您提供一个
fill=
美学使用时,
ggplot2
意识到这意味着您希望对箱线图几何图形使用回避。默认情况下,不要期望所有几何图形都有这种行为,但箱线图就是这种情况

这里真正的答案是,为了使您的点在两者之间对齐,您应该为
position=
提供相同的值。您甚至可以在
ggplot
调用之外指定:

pos <- position_dodge(width=0.9)

ggplot(dat, aes(x=g1, fill=g2, y=y)) +
  geom_boxplot(position=pos) +
  stat_summary(fun = mean, geom = 'point', color = 'blue', position = pos)

pos阅读更多关于
width
参数的信息:啊哈,@Henrik的答案中的链接我认为实际上找到了~0.75起作用的原因。我猜它最终源自geom_箱线图的默认宽度参数,该参数必须相对接近0.75。在这里阅读更多关于
width
参数的信息:@Henrik的答案中的链接,我认为实际上找到了~0.75起作用的原因。我猜它最终来自geom_箱线图的默认宽度参数,该参数必须相对接近0.75。