我想使用R中的世界地图来可视化我的数据,标签应添加在某些点(给定坐标)。标签应为一些高度与数据表中的值成比例的三维矩形。我将使用R包“leaflet”(或任何更好的替代品)。全球大约有10-15个点,每个位置有两个值(具体而言,这些点是主要油田的位置,而值是例如大小和储量)。我希望每个点都有两个这样的三维矩形,比如,红色和蓝色相互靠近,高度适当,并在其上标有数字,并用油田的名称标记每个点。我发现了使用leaflet包添加圆圈到地图上的解决方案。
代码加载数据和库:
圆形标记的地图是通过命令调用的。
然而,这个解决方案并不是很好,因为它不允许可视化第二个值(通过参数radius =〜res.density,其中res.density是.csv表中盆地的第一个值的名称)。
我想复制类似于GMT生成的此图像。仅需要一个简单的(2D)地图即可,但每个点需要两个这样的矩形,其中包含字段名称和每个矩形的值。
来自GMT软件包的图像。
代码加载数据和库:
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软件包的图像。