首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在R中创建具有自定义标签的叶地图

在R中创建具有自定义标签的叶地图
EN

Stack Overflow用户
提问于 2017-08-07 11:01:39
回答 1查看 3.5K关注 0票数 3

我想使用R中的世界地图来可视化我的数据,其中标签将被添加到某些点(给定坐标)。标签应该是一些高度与数据表中的值成比例的3D矩形。我会使用R包"leaflet“(或者其他更好的选择)。全世界大约有10-15个点,每个位置有两个值(具体地说,点是主要油田的位置,值是例如大小和储量)。我希望每个点都有两个这样的3D矩形,比方说,红色和蓝色站得很近,有适当的高度,上面有数字,每个点上都标有油田的名字。我用leaflet包找到了解决方案,在地图上添加了具有适当半径的圆圈。

数据和库由代码加载:

代码语言:javascript
复制
library(leaflet)
basins<-read.csv("somedata.csv")

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

代码语言:javascript
复制
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

带圆标签的地图由以下命令调用

代码语言:javascript
复制
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包的图像

EN

Stack Overflow用户

回答已采纳

发布于 2017-08-07 16:37:36

您可以使用leaflet.minicharts包添加条形图,如下所示:

代码语言:javascript
复制
library("leaflet")
library("htmltools")
library("leaflet.minicharts")

basins <- read.table(text="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", header=T, sep=",")

leaflet(data = basins) %>% 
  addProviderTiles("OpenStreetMap.Mapnik") %>% 
  addLabelOnlyMarkers(lng = ~lon, lat = ~lat, label = ~htmlEscape(basin),
                      labelOptions = labelOptions(noHide = TRUE, textOnly = TRUE, 
                                                  direction = "bottom", offset = c(0,5))) %>%
  addMinicharts(basins$lon, basins$lat, type = "bar", 
                chartdata = basins[, c("res.density", "rel.area")], width = 50, height = 60)

也许,为了简单起见,您可以省略addCircleMarkers。

票数 9
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45538831

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档