我目前正在阅读Hadley Wickham的 R for Data Science 。其中,有以下示例:
library(tidyverse)
ggplot(data = diamonds) +
stat_summary(
mapping = aes(x = cut, y = depth),
fun.ymin = min,
fun.ymax = max,
fun.y = median
)
现在,有一个问题是如何使用适当的geom_
函数创建相同的图。我查看了geom
的默认stat_summary
,它是pointrange
。
所以我尝试了以下内容:
ggplot(data = diamonds) + geom_pointrange(mapping = aes(x = cut, y = depth), stat = "summary")
但我没有在情节上得到min
和max
点。
如何使用geom_pointrange
答案 0 :(得分:11)
geom_pointrange
不会自动计算ymin或ymax值。您仍然可以使用stat = "summary"
执行此操作:<{1}}:
geom_pointrange
答案 1 :(得分:4)
我能想到的简单方法就是使用geom_line和stat_summary
ggplot(data = diamonds, mapping = aes(x = cut, y = depth)) +
geom_line() +
stat_summary(fun.y = "median", geom = "point", size = 3)
如果我真的想使用geom_pointrange,我会首先制作小型数据集。
data = diamonds %>%
group_by(cut) %>%
summarise(min = min(depth), max = max(depth),
median = median(depth))
ggplot(data, aes(x = cut, y = median, ymin = min, ymax = max)) +
geom_linerange() +
geom_pointrange()
答案 2 :(得分:4)