#r #ggplot2
#r #ggplot2
Вопрос:
Я хочу поместить текст в определенную точку на графике гистограммы
ggplot(ECOBICI2)
aes(x = Fecha_Arribo)
geom_histogram(binwidth = 1)
geom_text(aes(x = 2020-03-24), y = 12000, label = "Inicio de cierre de actividades")
labs(x = "Dia", y = "Viajes Por Día")
theme_classic()
Это выдает мне эту ошибку
Ошибка: неверный ввод: date_trans работает только с объектами класса Date
Fecha_Arribo — это даты
Я попытался указать as.Date()
ggplot(ECOBICI2)
aes(x = Fecha_Arribo)
geom_histogram(binwidth = 1)
geom_text(aes(x = as.Date(2020-03-24, "%Y/%m/%d"), y = 12000, label = "Inicio de cierre de actividades")
labs(x = "Dia", y = "Viajes Por Día")
theme_classic()
Затем это выдает мне эту ошибку
Ошибка в charToDate(x):
символьная строка не имеет стандартного однозначного формата
Ответ №1:
Как упоминалось @heds1, вы должны указать правильный формат для данных, используя кавычки и структуру года, месяца и дня, чтобы as.Date()
функция могла распознать его как дату. Другой момент заключается в том, что вы должны указать x
, y
и label
значения внутри aes()
опции для geom_text()
. Я воспроизвел пример для вас, используя некоторые фиктивные данные. Наверняка в ваших реальных данных вы можете изменить значения в geom_text()
, чтобы получить желаемый график. Вот код:
library(ggplot2)
#Data
df <- data.frame(Fecha_Arribo=sample(seq(as.Date('2020-01-01'),
as.Date('2020-10-01'),
by='1 day'),500,replace = T))
Далее в коде для plot я также добавил вертикальную линию, если вы хотите рассмотреть этот вариант на своем графике:
#Plot
ggplot(df,aes(x=Fecha_Arribo))
geom_histogram(binwidth = 1)
geom_text(aes(x = as.Date('2020-03-24'),y=8,label = "Inicio de cierre de actividades"))
geom_vline(xintercept = as.Date('2020-03-24'),lty='dashed')
labs(x = "Dia", y = "Viajes Por Día")
theme_classic()
Вывод:
Ответ №2:
Здесь есть две ошибки. Во-первых, ваш format
аргумент для as.Date
не соответствует указанному вами формату; вы указываете ему проанализировать дату, разделенную косой чертой «/», но объект даты, который вы предоставляете, разделен дефисами «-«. Во-вторых, вы передаете дату как переменную (с невозможным именем, т. Е. 2020-03-24), а не как строку.
Итак, передайте дату в виде строки и укажите правильный format
аргумент as.Date
, например:
as.Date('2020-03-24', '%Y-%m-%d')