Добро пожаловать на ТАК!
Трудно ответить на ваш вопрос, не увидев данные, которые вы используете, и ошибку, которую генерирует ваш код.В следующий раз попробуйте создать воспроизводимый вопрос .Это поможет кому-то определить, где находится ваша проблема.
На основе предоставленного вами кода и данных я создал пример набора данных с (в целом) структурой, аналогичной структуре на диаграмме ...
library(lubridate)
library(ggplot2)
library(ggthemes)
set.seed(100)
start_date <- mdy_hm("03-01-2017-12:00")
end_date <- mdy_hm("03-01-2018-12:00")
number_hours <- interval(start_date, end_date)/hours(1)
created_at <- start_date + hours(6:number_hours)
length(created_at)
word <- sample(c("abound", "abuse"), size = length(created_at), replace = TRUE,
prob=c(0.25, 0.75))
Ваше построение графиковКод выглядит хорошо.Я могу ошибаться, но из того, что я могу сказать, ваша проблема может заключаться в том, как вы суммируете частоты.В приведенном ниже коде я использовал пакет lubridate
для группировки данных по датам (дням) с учетом ежедневного подсчета частоты.
test_plot <- data_frame(created_at, word) %>%
mutate(sentiment =
case_when(
word == "abound" ~ "positive",
word == "abuse" ~ "negative")) %>%
filter(sentiment == "positive") %>%
mutate(created_at = date(round_date(ymd_hms(created_at), unit = "day"))) %>%
group_by(created_at) %>%
tally() %>%
ggplot() +
aes(x = created_at, y = n) +
geom_line(stat="identity", position = "identity", color = "Blue") +
geom_smooth() +
scale_x_date(date_breaks ='3 months', date_labels = '%b-%Y') +
theme_gdocs() +
xlab("Date") +
ylab("Frequency of Positive Words in Trump's Tweets")
Что дает вам это ...