2016-05-05 155 views
2

我希望你能帮助我。我用Leaflet创建了一个Choropleth Map。我将我的(数据框与国家和一个随机分数)和一个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

有没有办法让这[reproducible](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你这是刚刚解决。

在我的情况下,在我自己的PC上在Rstudio内显示多边形颜色时没有问题,但某些Web浏览器和较旧版本的Rstudio拒绝使用颜色填充多边形,即使地图的所有其他方面都正常工作。

问题是我的调色板由带alpha通道的十六进制代码矢量组成(最后几位数字,指定透明度)。从十六进制代码中删除alpha通道解决了我的问题。这可能是值得检查你的颜色矢量是否包含alpha,如果是,根据我自己的问题的答案(上面的链接),用gsub(".{2}$","",your_colour_vector)之类的东西去除它。

它看起来不像你的颜色在你的示例代码中包含alpha,但也许这是你的完整代码中的一个问题。这将解释为什么示例代码有效,但完整的代码没有。无论如何可能有什么东西要看?对不起,我忍不住了,我知道这是在黑暗中的一个镜头,而不是一个完整的解决方案。