Как добавить текст в график gtrendsR? - PullRequest
1 голос
/ 13 апреля 2019

Я пытаюсь составить графики, используя пакет gtrendsR.Всякий раз, когда я пытаюсь использовать функцию plot(), график, который возвращает R, кажется, игнорирует любые текстовые аргументы, которые я помещаю в нее, например main=" ", xlab=" " or ylab=" ", и это моя проблема.

Я также пытался использовать ggplot() вместо.

Вот код:

library(gtrendsR)
library(ggplot2)


fruits<- gtrends(c("Banana", "Apple", "Orange"), geo = c("US"), time = "2019-03-13 2019-03-27")

plot(fruits, main="I tried so hard", xlab="and got so far", ylab="but in the end")

ggplot(fruits)

ggplot(fruits$interest_over_time)

Но результат был еще хуже, так как plot() все еще дает мне график, а ggplot() ничего не возвращает.

Ответы [ 2 ]

1 голос
/ 13 апреля 2019

Вы должны использовать labs функцию пакета ggplot2 как в:

plot(fruits) + labs(title = "I tried so hard", x = "and got so far", y = "but in the end")

, которая выводит:

enter image description here

Объяснение: График функции используется на объекте gtrendsR, и поэтому используется метод построения gtrendsR::plot.gtrends, который имеет следующее определение:

function (x, ...) 
{
    df <- x$interest_over_time
    df$hits <- if (typeof(df$hits) == "character") {
        as.numeric(gsub("<", "", df$hits))
    }
    else {
        df$hits
    }
    df$legend <- paste(df$keyword, " (", df$geo, ")", sep = "")
    p <- ggplot(df, aes_string(x = "date", y = "hits", color = "legend")) + 
        geom_line() + xlab("Date") + ylab("Search hits") + ggtitle("Interest over time") + 
        theme_bw() + theme(legend.title = element_blank())
    print(p)
    invisible(p)
}

, как вы можете видетьметод использует пакет ggplot2 для построения графика (а не базового графика R) и уже указывает лаборатории в:

xlab("Date") + ylab("Search hits") + ggtitle("Interest over time")

, который необходимо переопределить в вашем случае.Для вашей информации, мы используем функцию labs вместо ggtitle, xlab и ylab, поскольку это новый способ работы (см. https://ggplot2.tidyverse.org/reference/labs.html), но мы могли бы написать:

plot(fruits) + ggtitle("I tried so hard") + xlab("and got so far") + ylab("but in the end")
1 голос
/ 13 апреля 2019

Я только что нашел этот урок Анализ Google Trends с помощью R: Retrieve и построение графиков с помощью gtrendsR , который описывает то же самое, что и я, но более подробно, это может быть отличным началом для вас!


fruit is no dataframe
Когда вы звоните class(fruits), если даст "gtrends" "list", чтобы иметь возможность построить его, вы должны извлечь информацию, которую выхочу от этого объекта в формате dataframe .Чтобы увидеть, какие фреймы данных находятся в объекте, выполните View(fruits), если вы, например, работаете в Rstudio, или просто наберите fruits$ и нажмите вкладку.

enter image description here

Понятия не имею, какую информацию вы хотите?Но предположим, что вы хотите построить interest_by_region, тогда мы получим фрейм данных на fruit.df <- fruits$interest_by_region

Построение графика
Опять же, из вашего вопроса не понятно, что вы хотитеграфик, но теперь у вас есть датафрейм (fruit.df), который вы можете построить как угодно, используя ggplot2, например:

fruit.df <- fruits$interest_by_region
ggplot(fruit.df, aes(x=location, y=hits, fill = keyword)) +
  geom_bar(stat='identity') +
  coord_flip() +
  ggtitle("I tried so hard") +
  xlab("and got so far") +
  ylab("but in the end")

, который даст вам этот график:

enter image description here Ps credtis для "Linkin Park- в конце" для основного, xlab и ylab хахах

Резюме
Итак, вам нужно сделать следующее:

  • Получить кадр данных из объекта gtrends, который может быть interest_over_time, interest_by_region, interest_by_dma, interest_by_city или related_queries.Сделайте это, как я описал для interest_by_region
  • С помощью ggplot2 постройте все, что вам нужно, с помощью этого кадра данных (см. Учебник ggplot2 , если вы не уверены, как это сделать)
...