2015-12-17 3 views
2

Я смог создать интерактивный geoChart, используя приведенные ниже сценарии, проблема в том, что масштаб, чтобы различать цвет карты, меняется каждый день. Мой набор данных - это годовой показатель ежедневной статистики каждого штата в США.Как установить постоянную цветовую гамму с помощью Shiny + gvisGeoChart?

Например, для 1-го дня шкала принимает минимальное и максимальное значение этого конкретного дня. Но я пытаюсь изменить сценарии, чтобы масштаб стал постоянным для любого дня (и показывает мин и макс в течение всего года).

Может ли кто-нибудь угодить советам, как это сделать? Спасибо!

global.R

library(shiny) 
states <- read.csv("queries_geo.csv") 
states$StartDate <- as.Date(states$StartDate, "%m/%d/%Y") 

ui.R

library(shiny) 
shinyUI(fluidPage(
    titlePanel("PlayStation4 Search Volume Trend by States"), 
    sidebarLayout(
    sidebarPanel(
     sliderInput("StartDate", "Quarter", 
       min = min(states$StartDate), 
       max = max(states$StartDate), 
       value = min(states$StartDate), 
       step = 1, 
       animate = TRUE)), 

mainPanel(
    htmlOutput ("GeoStates") 
)))) 

server.R

library(shiny) 
library(dplyr) 
library(googleVis) 

shinyServer(function(input,output,session){ 

    querydate <- reactive({ 
    states_new <- states %>% 
     filter(StartDate == input$StartDate) %>% 
     select(Geo,Queries) %>% 
     arrange(Geo)}) 

    output$GeoStates <- renderGvis ({ 
    GeoStates <- gvisGeoChart(querydate(), 
           "Geo", #locationvar 
           "Queries", # colorvar 
           options = list(region = "US", 
              displayMode = "regions", 
              resolution = "provinces", 
              sizeAxis.maxValue = max(states$Queries), 
              sizeAxis.minValue = min(states$Queries), 
              width = 600, 
              height = 400) 
          )})}) 

ответ

0

Я был в состоянии понять это. Я отправляю свое решение так, что, надеюсь, это сэкономит время в будущем! Спасибо, что прочитали мой вопрос!

global.R =>никаких изменений в этой части

library(shiny) 
states <- read.csv ("queries_geo.csv") 
states$StartDate <- as.Date(states$StartDate, "%m/%d/%Y") 

ui.R =>значительные изменения произошли в этой части. Вместо создания диаграммы карт в server.R и htmlOutput в ui.R, этот код создает карту в ui.R. Таким образом, масштаб карты остается постоянным, и анимация работает плавно. server.R просто передает реактивные данные на картографическую карту в ui.R.

library(shiny) 
library(googleVis) 
library(googleCharts) 

min_query <- min(states$Queries) 
max_query <- max(states$Queries) 

shinyUI(fluidPage(
    # This line loads the Google Charts JS library 
    googleChartsInit(), 

    # https://developers.google.com/chart/interactive/docs/gallery/geochart 
    googleGeoChart("GeoStates", 
       width = 1000, 
       height = 600, 
       options = list(
        fontSize = 13, 
        region = "US", 
        displayMode = "regions", 
        resolution = "provinces", 
        colorAxis = list(
        maxValue = round(max_query, -3), 
        minValue = round(min_query, -1) 
        ))), 

    fluidRow(
    shiny::column(4, offset = 4, 
    sliderInput("StartDate", 
       "StartDate", 
       min = min(states$StartDate), 
       max = max(states$StartDate), 
       value = min(states$StartDate), 
       step = 60, 
       animate = TRUE) 
)))) 

server.R

library(shiny) 
library(dplyr) 
library(googleVis) 

shinyServer(function(input,output,session){ 

    querydate <- reactive({ 
    states_new <- states %>% 
     filter(StartDate == input$StartDate) %>% 
     select(Geo,Queries) %>% 
     arrange(Geo) 
    }) 

    output$GeoStates <- reactive({ 
    list(
     data = googleDataTable(querydate()) 
    )})}) 

 Смежные вопросы

  • Нет связанных вопросов^_^