линии построения, представляющие диапазоны дат

#r #ggplot2

#r #ggplot2

Вопрос:

У меня есть следующие данные

 MIN           MAX        GENDER
01/01/2002    17/12/2010   MAN
04/05/2012     07/08/2018  WOMAN
  

Я пытаюсь построить для каждой строки строку, начинающуюся с MIN и заканчивающуюся на MAX , как на изображении.

Я пытаюсь ggplot2

 date <- c("2002-01-01", "2010-12-17", "2012-04-05", "2018-08-07"
    group <- c("Man", "Woman")
    df <- as.data.frame(cbind(date, group))
    library(tidyverse)
    df %>%
    mutate(date = as.POSIXct(date)) %>% #convert to date
  group_by(group, date)  #group
  

введите описание изображения здесь

Но не могу найти, как получить разницу между датами для рисования линий.

Комментарии:

1. Что такое ось Y?

Ответ №1:

Получить данные

 txt <- "MIN           MAX        GENDER
01/01/2002    17/12/2010   MAN
04/05/2012     07/08/2018  WOMAN"

dta <- read.table(textConnection(txt), header =TRUE)
dta$MIN <- as.Date(dta$MIN, format = "%d/%m/%Y")
dta$MAX <- as.Date(dta$MAX, format = "%d/%m/%Y")
  

График

 dta %>% 
  group_by(GENDER) %>% 
  tidyr::gather(key, value, -GENDER) %>% 
  ggplot(aes(GENDER, value))   
  geom_line(aes(color = GENDER))   
  coord_flip()   
  scale_y_date(breaks = c(dta$MIN, dta$MAX))   
  theme(axis.text.x = element_text(angle = 45, hjust = 1))
  

Вывод

Вывод