Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 有人能推荐一个好的世界地图可视化系统在Shiny中使用吗?_R_Shiny_Choropleth_Rworldmap - Fatal编程技术网

R 有人能推荐一个好的世界地图可视化系统在Shiny中使用吗?

R 有人能推荐一个好的世界地图可视化系统在Shiny中使用吗?,r,shiny,choropleth,rworldmap,R,Shiny,Choropleth,Rworldmap,提前为文字墙道歉。我正在创建一种新型的choropleth地图,其中国家根据不同的分类变量进行着色。我设置应用程序的方式是,我根据每个国家的基础变量水平为每个国家分配一个RGB值,我希望地图显示RGB值——看起来很简单,对吗 不幸的是,大多数地图可视化似乎想为我选择颜色,而不是让我选择。我所能做的最好的事情就是将数据分类处理,最终得到的分类数量与国家相同。这对于rworldmap来说相当有效。问题是,我正在开发这个网站,我真的很想有工具提示,让你可以悬停在一个特定的国家,这不适用于rworldm

提前为文字墙道歉。我正在创建一种新型的choropleth地图,其中国家根据不同的分类变量进行着色。我设置应用程序的方式是,我根据每个国家的基础变量水平为每个国家分配一个RGB值,我希望地图显示RGB值——看起来很简单,对吗

不幸的是,大多数地图可视化似乎想为我选择颜色,而不是让我选择。我所能做的最好的事情就是将数据分类处理,最终得到的分类数量与国家相同。这对于rworldmap来说相当有效。问题是,我正在开发这个网站,我真的很想有工具提示,让你可以悬停在一个特定的国家,这不适用于rworldmap,因为它只是一个基本的绘图。另外,rworldmap输出也不是特别好看

以下是我使用的代码:

mapjoin <- joinCountryData2Map(db, joinCode="ISO3", 
  nameJoinColumn="iso", mapResolution="high")

mapCountryData(mapjoin, nameColumnToPlot="iso", addLegend=FALSE,
  catMethod="categorical", colourPalette=db$rgb, mapTitle=input$year)
正如你所看到的,没有一种特定的方式来提示JS应用程序它是分类数据,因此,它制作了一个包含182个不同渐变停止点的choropleth。通常这很好,但偶尔会发生一些奇怪的事情,一个国家神秘地在颜色之间的中间位置结束。我总能看出这是一个问题,因为某些国家应该是特定的颜色(例如,美国将显示为#0000FF,当它不是时,这是非常明显的)。我发现我可以转到不同的图表类型(应用程序使用其他googleCharts类型),然后返回地图,通常它是固定的。所以这是完全不一致的

因此,考虑到这一点,有谁能推荐一个更好的映射工具,我可以在Shiny中实现它,它可以很好地用于此目的

谢谢

查看传单:

它将允许您:

  • 为每个包含更多数据的shapefile创建弹出窗口
  • 根据dbf文件中的数据,在R中显式设置形状文件的颜色
  • 使用开放的地图背景
一些示例代码(并非所有代码都相关):

map%
addTiles(urlTemplate=url,attribute=HTML(attrib))%>%
添加多边形(数据=子图形,
填充=真,
fillColor=colors$color,#在此处设置颜色
fillOpacity=.8,
笔划=真,
重量=3,
color=“白色”,
dashArray=c(5,5),
弹出=弹出
)

Hmmm,传单对此似乎有点过分了。不过,我可能会试一试,因为似乎没有其他东西能很好地发挥作用。
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")
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
        )