googleVis Intensity Map Shiny R

时间:2017-01-13 14:08:27

标签: r shiny googlevis

我每次搜索关键字时都会尝试使用googleVis生成Intensity地图。我有三个与googleVis有关的问题:

  1. 由于某些原因,gvisIntensityMap需要两个变量,即数据框中有两个标签,否则不会显示。
  2. gvisIntensityMap总是打开一个独立的新窗口,尽管命令放在一个闪亮的渲染中。我尝试了很多渲染的组合而没有成功。
  3. 我设法在闪亮的应用程序中显示强度图,但在这种情况下,它仍然打开一个带有重复地图的新窗口。此外,它将闪亮应用程序的所有字体缩小到很小的尺寸。
  4. 这是代码:

    process_google_data <- function(keyword) {
    if (trimws(keyword) != "") {
        #retrieves raw data from google trends
        gtrends_data <-
            gtrends(trimws(keyword), cat = "0", session = session)
    
        #generates intensity map data for plotting
        top_regions <-
            gtrends_data[5] %>% ldply(., data.frame) %>% .[, 2:3]
        top_regions$Region %<>% toupper
        top_regions %<>% join(y = countries_data,
                              type = "inner",
                              match = "first") %>% .[order(.[2]), c(1, 3, 2)]
        intensity_data <-
            data.frame(country = top_regions[, 2] %>% as.vector,
                       Intensity = top_regions[, 3],
                       empty = rep(NA, NROW(top_regions))) %>% gvisIntensityMap #for some reasons, two tabs are necessary to display the plot
    
    
        gtrends_data$trend$start %<>% sub("^(.{8})(?:\\d{2})", "\\101", .)
        gtrends_data <-
            tapply(gtrends_data$trend$hits,
                   gtrends_data$trend$start,
                   mean) %>% cbind(names(.), .) %>% as.data.frame
        colnames(gtrends_data) <- c("Date", "hits")
        row.names(gtrends_data) <- 1:NROW(gtrends_data)
        gtrends_data[, 2] %<>% as.integer
    
        return(list(gtrends_data, intensity_data))
    }}
    
    
     shinyServer(function(input, output, session) {
    observeEvent(input$search,
                 {        
                     # browser()
                     go <- process_google_data(input$keyword)
                     output$intensityPlot <- htmlOutput({ plot(go[[2]], tag ='chart') })
                     go
                 })
    

    })

    如果你能提供帮助,那就太有意义了。感谢。

0 个答案:

没有答案