R: ggplot2 pointrange example

geom_pointrange does not automatically compute the ymin or ymax values. You can do this with stat = "summary" while still using geom_pointrange:

ggplot(data = diamonds) +
  geom_pointrange(mapping = aes(x = cut, y = depth),
                  stat = "summary",
                  fun.ymin = min,
                  fun.ymax = max,
                  fun.y = median)

The easy way I can think of is just using geom_line and stat_summary

 ggplot(data = diamonds, mapping = aes(x = cut, y = depth)) +
     geom_line() +
     stat_summary(fun.y = "median", geom = "point", size = 3)

This will give very similar plot. enter image description here

If I really want to use geom_pointrange, I would make small dataset first.

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()

This would generate the exact same plot. Hope this helps! enter image description here