在散点图上绘制最大值和最小值(基于列值)

时间:2019-07-19 22:20:43

标签: r dataframe ggplot2 plot

我有一个看起来像这样的数据框:

   Month   value
1 2018-07 0.5241422
2 2018-08 0.6197477
3 2018-08 3.3603833
4 2018-10 0.5357588
5 2018-09 0.8397401

我想将其绘制到类似于以下这些图的位置;而误差线范围实际上可以显示“值” 每个月的最小值:

enter image description here

我不需要均值+ / Ci,我只需要它显示按月显示的最大值和最小值,中间也要显示均值(不必要)

我试图从Scatter plot with error bars重复一些解决方案

但是,主要的问题是我无法指定每个月的最小值和最大值,而是显示整个数据帧的实际最大值和最小值。

与我需要的结果类似...


df %>% 
  ggplot(aes(x = Month, y = value)) +
  geom_boxplot(alpha = 0.4) +
  theme_minimal() +
  expand_limits(y = 0) +
  labs(y =  "") 

非常感谢您的帮助。谢谢!

1 个答案:

答案 0 :(得分:2)

我看到您更新了您的问题,并相应地修改了我的答案。您可以先计算最小值,最大值和平均值,然后使用计算出的数据来创建图。这就是你想要的吗?

library(tidyverse)
library(lubridate)

data <- tibble(
    date = rep(seq(ymd("2019-01-01"),ymd("2019-12-01"),by = "1 month"),10),
    value = 1 +runif(120)
) %>%
    arrange(date)

data_range <- data %>%
    group_by(date) %>%
    summarise(max = max(value),
              min = min(value),
              mean = mean(value))

data_range %>%
    ggplot(aes(x = date,y = mean)) +
    geom_line() +
    geom_point() +
    geom_errorbar(aes(ymin = min, ymax = max))


enter image description here