提前抱歉留言。我正在创建一种新型的等值区域图,其中各国基于不同的分类变量进行着色。我设置应用程序的方式,我根据每个国家/地区的每个基础变量的级别为每个国家分配RGB值,我希望地图显示RGB值 - 看起来很简单,对吧?
不幸的是,大多数地图可视化似乎都想为我做颜色选择,而不是让我选择。我能做的最好的事情就是将数据视为分类数据,最终我的数据类别与国家相同。这对rworldmap非常有效。问题是,我正在开发这个用于网络使用,我真的很想拥有工具提示,这样你就可以将鼠标悬停在一个特定的国家/地区,但这并不适用于rworldmap,因为它&#39 ; s只是一个基本情节。此外,rworldmap输出看起来并不是特别好看。
这是我用过的代码:
mapjoin <- joinCountryData2Map(db, joinCode="ISO3",
nameJoinColumn="iso", mapResolution="high")
mapCountryData(mapjoin, nameColumnToPlot="iso", addLegend=FALSE,
catMethod="categorical", colourPalette=db$rgb, mapTitle=input$year)
我已尝试使用googleVis,但我遇到了很多麻烦 - 地图会无缘无故地消失,我不得不重新加载页面,我认为这是一个问题googleVis包中的绑定。我最终选择了googleCharts(https://github.com/jcheng5/googleCharts),它解决了绑定问题。
但是,我仍然遇到问题。
这里是反应函数:
output$mapviz <- reactive({
db <- genRgb()
list(
data=googleDataTable(db[c("country", "id")]),
options=list(legend="none", projection="kavrayskiy-vii", colors=db$rgb)
)
)}
这里是输出调用:
googleGeoChart("mapviz", width="100%", height="780px")
正如您所看到的,没有一种特定的方法可以让JS应用程序知道它的分类数据,因此,它使用182个不同的渐变停止点进行了等距离。通常这种方法很好,但偶尔会发生一些奇怪的事情,一个国家神秘地终结于颜色之间的中间位置。我总是可以说这是一个问题,因为某些国家应该是特定的颜色(例如,美国将显示为#0000FF,而当它不是时,它就非常明显)。我发现我可以使用不同的图表类型(应用程序使用其他googleCharts类型),然后返回到地图,通常它已修复。所以它完全不一致。
因此,考虑到这一点,任何人都可以建议一个更好的地图工具,我可以在Shiny中实现这个工具可以很好地用于此目的吗?
谢谢!
答案 0 :(得分:3)
查看传单:
https://rstudio.github.io/leaflet/
它允许你:
一些示例代码(并非所有代码都可能相关):
map <- leaflet()%>%
addTiles(urlTemplate = url, attribution = HTML(attrib))%>%
addPolygons(data = sub_shape,
fill = TRUE,
fillColor = colors$color, #set color here
fillOpacity = .8,
stroke = TRUE,
weight = 3,
color = "white",
dashArray = c(5,5),
popup = pops
)