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