答案 0 :(得分:1)
您可以使用stat_summary
将聚合函数应用于每组y值,并将结果传递给geom。需要注意的是:箱形图已经分组(每个箱是一个组),因此要使几何图形跨箱图,您必须在geom_boxplot
和stat_summary
之间进行不同的分组设置。将群体美学视为定义应该连接或分开的对象。
有关如何指定聚合函数的完整详细信息,请参见?stat_summary
,但是tl; dr是它可以采用y,ymin和ymax的独立函数,也可以采用称为{{1}的函数。 }会返回包含名为fun.data
,y
和ymin
的列的数据帧。如果您不想编写匿名函数,也可以通过ymax
传递Args。如果几何不需要全部三种美学,则可以仅指定一种(例如,线条仅需要fun.args
)。
因此要在第一,第二和第三四分位数上画线,并加一些躲避,以便所有内容都对齐,
y
不过,这个情节非常忙。另一个平行坐标/箱线图交叉可能是对第一和第三分位数使用library(ggplot2)
data('mpg', package = 'ggplot2')
mpg$cyl <- factor(mpg$cyl)
# note grouping here is set to what stat_summary needs (so we don't have to override so many times)
ggplot(mpg, aes(class, hwy, color = cyl, group = cyl)) +
geom_boxplot(aes(group = NULL)) + # override grouping here back to the default
stat_summary(geom = 'line', fun.y = median, position = position_dodge(0.75)) +
stat_summary(geom = 'line', fun.y = quantile, fun.args = list(probs = 0.25), position = position_dodge(0.75)) +
stat_summary(geom = 'line', fun.y = quantile, fun.args = list(probs = 0.75), position = position_dodge(0.75))
(需要ymin和ymax):
geom_ribbon