Использование Shiny, RCharts и карт данных: легенда удалена с помощью navbarPage

См. код ниже. Как это работает. Если вы раскомментируете закомментированные строки, блестящая легенда исчезнет. Это вполне может быть блестящий жук. Моему приложению нужен navbarPage. У кого-нибудь есть предложения?? Я использую R версии 3.1.1 и последние версии пакетов (по состоянию на 10.06.2014)

library(WDI)
library(dplyr)
library(countrycode)
library(RColorBrewer)
library(plyr)
library(rMaps)
library(rCharts)
library(shiny)
#
runApp(list( ui =   
    # navbarPage("Maps", id = "maps",
    #           footer = "footer",
    tabPanel("Data Map", id="overview",h3("Data Maps!"), 
                showOutput("chart1", "datamaps")
                # )
), 
 server = function(input, output, session) {
output$chart1 <- renderChart2({
        df=WDI(country = "all", indicator = "SH.DYN.MORT",
               start = 2000, end = 2000, extra = FALSE, cache = NULL)
        data <- df %.% 
          na.omit() %.%

          mutate(iso3c=countrycode(iso2c, "iso2c", "iso3c")) %.% 
          group_by(iso3c) 

        i1 <- ichoropleth(SH.DYN.MORT~iso3c, data, map="world",labels=FALSE,pal="Reds")
        i1
    })
}))

person Enzo    schedule 06.10.2014    source источник
comment
@rmccloskey Перередактированный код (устранение вкравшегося }!). Спасибо за это. Добавлена ​​версия R.   -  person Enzo    schedule 07.10.2014
comment
Мне тоже нужен был library(rMaps).   -  person Joe Cheng    schedule 07.10.2014


Ответы (1)


Ошибка, похоже, в rCharts/rMaps, а не в Shiny; высота карты и ее контейнера rCharts установлена ​​на 400 пикселей, но легенда также включена в контейнер. Легенда по-прежнему присутствует во всех случаях, но вам нужно прокрутить ее, когда используется navbarPage. navbarPage, кажется, усугубляет проблему, потому что он говорит tabPanel не просто отображать слишком большой для него контент, а вместо этого выполнять прокрутку.

Вы можете подтвердить, что это проблема даже без navbarPage, просто добавив строку "hello" в качестве другого аргумента для tabPanel сразу после вызова showOutput(); вы увидите, что «привет» отображается между картой и легендой, тогда как оно должно отображаться под легендой.

person Joe Cheng    schedule 06.10.2014
comment
Большое спасибо за помощь! По крайней мере, теперь я знаю, на какое дерево лаять :) - person Enzo; 07.10.2014