#r #date #ggplot2 #tidyverse
Вопрос:
Итак, у меня есть список дат и соответствующих данных следующим образом:
DATE Event
7/14/2021 Start
7/14/2021 Start
7/14/2021 Start
7/14/2021 Start
7/13/2021 Start
7/12/2021 Start
7/12/2021 Start
7/12/2021 Start
7/12/2021 Start
7/12/2021 Start
7/12/2021 Start
7/11/2021 Start
7/11/2021 Start
7/6/2021 Submit
6/30/2021 Submit
6/25/2021 Submit
6/24/2021 Submit
6/23/2021 Submit
6/22/2021 Submit
6/22/2021 Submit
Все, что я хочу сделать, это иметь 1 участок с двумя линиями:
- ось x: ДАТА
- ось y: количество записей
- Строка 1: Начинается
- Строка 2: Представляет
Я пытаюсь сделать это с помощью ggplot и tidyverse, любая помощь приветствуется!!
Ответ №1:
** видел ваш комментарий, если вы хотите иметь отдельные строки, основанные на поле события, используйте аргумент group
в функции ggplot()
. Вы также можете добавить цвет по событию. Я добавил это в код.
Это должно сработать для вас. Найдите встроенный комментарий, который начинается с «# это та часть, которая вас интересует».
# original data
df = data.frame(DATE........Event = c("7/14/2021 Start",
"7/14/2021 Start","7/14/2021 Start",
"7/14/2021 Start","7/13/2021 Start",
"7/12/2021 Start","7/12/2021 Start","7/12/2021 Start",
"7/12/2021 Start","7/12/2021 Start",
"7/12/2021 Start","7/11/2021 Start","7/11/2021 Start",
"7/6/2021 Submit","6/30/2021 Submit",
"6/25/2021 Submit","6/24/2021 Submit",
"6/23/2021 Submit","6/22/2021 Submit","6/22/2021 Submit")
)
# had to fix the data, because of the way you posted it
names(df)[1] <- "Date"
df <- separate(df, Date, into = c("Date", "Event"), sep = " ")
# this is the part you're interested in
# first you need the date to be a date object
# the library lubridate is the best option for simplicity
df <- df %>% mutate(Date = lubridate::mdy(Date))
# then you can graph the count
# and group by event**
ggplot(df, aes(x = Date,
group = Event,
color = Event))
geom_line(stat = "count")
Комментарии:
1. Это не совсем так, мне нужна строка для начала и строка для отправки, две строки на один сюжет.
2. Это выглядит более правильно, вы можете обновить сюжет?
3. @John Thomas Я обновил график после того, как изначально обновил код. Однако это было до вашего комментария. График выровнен по коду. Может быть, ты смотрела на него, пока я его менял?
4. К вашему сведению, @Kat, вы можете легче читать данные, используя
read.table("clipboard", header = TRUE)
Windows (и Linux, я думаю) иread.table(pipe("pbpaste"), header=TRUE)
macos (как после выделения текста данных в вопросе, так и копирования). Он будет читать это в виде рамки из двух столбцов без необходимостиseparate(.)
(хотя ему все еще нужноmdy
илиas.Date
).