【发布时间】:2017-06-22 02:32:18
【问题描述】:
所以我知道解决这个问题的更好方法是使用 stat_summary() 函数,但这是为了解决 Hadley 的 R for Data Science 书中提出的一个问题,主要是出于我自己的好奇心。它询问如何将使用stat_summary() 制作的示例图的代码转换为与geom_pointrange() 制作相同的图。例子是:
ggplot(data = diamonds) +
stat_summary(
mapping = aes(x = cut, y = depth),
fun.ymin = min,
fun.ymax = max,
fun.y = median
)
情节应该是这样的:
(来源:had.co.nz)
我尝试过使用以下代码:
ggplot(data = diamonds, mapping = aes(x = cut, y = depth)) +
geom_pointrange(mapping = aes(ymin = min(depth), ymax = max(depth)))
但是,这会绘制每个切割类别中所有深度值的最小值和最大值(即,所有 ymin 和 ymax 都相同)。我也尝试传递一个最小值和最大值的向量,但 ymin 据我所知只接受单个值。这可能很简单,但我认为人们大多使用 stat_summary(),因为我通过 Google 发现的 geom_pointrange() 使用示例很少。
【问题讨论】:
-
好问题。我想很多人都会为这个问题挠头。