2016-05-05 3 views
2

Надеюсь, вы можете мне помочь. Я создал choropleth Map с Leaflet. Я объединил свой (dataframe со странами и случайный балл) и Shapefile с данными Polygon. Пока он работает, однако, если я реализую его в R-Shiny, карта показывается, но без цвета. Также нет ошибок. Кто-нибудь знает почему?R Блестящая брошюра addPolygons (цвета не отображаются)

Мой код:

ui <- fluidPage(
    leafletOutput("map") 
) 


shinyServer(function(input, output) { 

output$map <- renderLeaflet({ 
    test_map 
    }) 
}) 

global.R 

tmp <- tempdir() 

url <- "http://www.naturalearthdata.com/http//www.naturalearthdata.com/download/50m/cultural/ne_50m_admin_0_countries.zip" 

file <- basename(url) 

download.file(url, file) 

unzip(file, exdir = tmp) 

world <- readOGR(dsn = tmp, layer = "ne_50m_admin_0_countries", encoding = "UTF-8") 

data <- data.frame(Code = c("AR", "AU", "BE", "BR"), 
      Score = c(0.01, -0.05, 0.15, -0.22)) 

world <- merge(world, data, 
       by.x = "iso_a2", 
       by.y = "Code", 
       sort = FALSE) 

pal <- colorNumeric(
    palette = "RdYlGn", 
    domain = world$Score 
) 

test_map <- leaflet(data = world) %>% 
      addTiles() %>% 
      addPolygons(fillColor = ~pal(Score), 
         fillOpacity = 0.9, 
         color = "#BDBDC3", 
         weight = 1) 
+0

Есть ли способ сделать это [воспроизводимым] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example/5963610#5963610)? – alistaire

+0

Привет, @alistaire, я добавил некоторый воспроизводимый код;). Заранее спасибо. – Josef

+0

Когда я запускаю ваш код, я вижу три цвета (Аргентина, Бразилиа и Австралия) – MLavoie

ответ

1

Я знаю, что это старый вопрос, и я не уверен, будет ли это помочь или нет, но я считаю, что я был a similar problem к вам, который был просто решена.

В моем случае у меня не было проблем с отображением полигональных цветов в Rstudio на моем собственном компьютере, но некоторые веб-браузеры и более ранние версии Rstudio отказались заполнять полигоны цветами, хотя все остальные аспекты карты работали нормально.

Проблема заключалась в том, что моя цветовая палитра состояла из вектора шестнадцатеричных кодов с альфа-каналом (последние две цифры, определяющие прозрачность). Удаление альфа-канала из шестнадцатеричных кодов решило мою проблему. Возможно, стоит проверить, включают ли ваши цветовые векторы альфа, и если это так, удаляя его с чем-то вроде gsub(".{2}$","",your_colour_vector) в соответствии с ответом на мою собственную проблему (ссылка выше).

Это не похоже, что ваши цвета включают альфу в вашем примере кода, но, возможно, это проблема в вашем полном коде. Это объясняет, почему образец кода работает, но полный код этого не делает. Может быть, все-таки есть что посмотреть? Извините, я не могу больше помочь, я знаю, что это немного выстрел в темноте, а не полное решение.

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