在R中创建带有自定义标签的Leaflet地图

时间:2017-08-07 03:01:39

标签: r maps label diagram r-leaflet

我想使用R中的世界地图来显示我的数据,其中标签将被添加到某些点(给定坐标)。标签应该是一些3D矩形,其高度与数据表中的值成比例。我会使用R包“传单”(或任何替代,如果更好)。世界上大约有10-15个点,每个位置有两个值(具体地,点是主要油田的位置,并且值例如是大小和储量)。我想为每个点设置两个这样的3D矩形,比方说,红色和蓝色站在彼此附近,具有适当的高度和数字,并且每个点都标有油田的名称。我找到了带有传单包的解决方案,在地图上添加了适当半径的圆圈。

数据和库由代码加载:

library(leaflet)
basins<-read.csv("somedata.csv")

somedata.csv具有以下结构(仅作为最小工作示例的四个数据):

basin,lat,lon,res.density,rel.area
Central Sumatra,1,96,16.7,75
North Sea,58.4,2,20,24
Maracaibo basin,9,-71,74.4,14.3
Los Angeles,33,-118,31.2,32

圆圈标记的地图由命令

调用
m=leaflet(data = basins) %>% addTiles() %>% addCircleMarkers(~lon, ~lat , popup = ~as.character(basin),radius=~res.density*0.4,label=~htmlEscape(basin),labelOptions=labelOptions(noHide=T,textOnly=TRUE,direction="bottom"))

然而这个解决方案不太好,因为它不允许可视化第二个值(通过参数radius = ~res.density,其中res.density是我.csv中盆地的第一个值的名称表)。

我想重现一些看起来像这张图片的东西,这是由GMT制作的。具有普通(2D)地图就足够了,但每个点需要两个这样的矩形,字段名称和每个矩形的值。

来自GMT套餐的图片

enter image description here

1 个答案:

答案 0 :(得分:8)

您可以在包{{1}}包的帮助下添加条形图,如下所示:

{{1}}

可能,为简单起见,您可以省略addCircleMarkers。

enter image description here