2

我希望你能帮助我。我用 Leaflet 创建了一个等值线地图。我将我的(数据框与国家和随机分数)和 Shapefile 与多边形数据合并。到目前为止它正在工作,但是如果我在 R-Shiny 中实现它,地图会显示,但没有颜色。也没有错误显示。有谁知道为什么?

我的代码:

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)
4

1 回答 1

1

我知道这是一个老问题,我不确定这是否会有所帮助,但我相信我遇到了与你类似的问题,刚刚解决了。

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

问题是我的调色板由一个带有 alpha 通道的十六进制代码向量组成(最后几个数字,指定透明度)。从十六进制代码中删除 alpha 通道解决了我的问题。可能值得检查您的颜色向量是否包含 alpha,如果是,gsub(".{2}$","",your_colour_vector)请按照我自己的问题的答案(上面的链接)将其删除。

它看起来不像您的颜色在您的示例代码中包含 alpha,但它可能是您的完整代码中的一个问题。这可以解释为什么示例代码有效但完整代码无效。无论如何可能需要调查?抱歉,我帮不上忙,我知道这只是在黑暗中拍摄,而不是完整的解决方案。

于 2017-03-17T04:51:48.593 回答