首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >geom_segments xend、yend参数的Leaflet等效项

geom_segments xend、yend参数的Leaflet等效项
EN

Stack Overflow用户
提问于 2020-01-01 01:25:02
回答 1查看 127关注 0票数 0

我想问一下,有没有办法在leaflet`s addPolylines函数中通过geom_segment参数来设置xendyend

为了解释,我宁愿提供可重现的例子,因为它看起来比解释更容易:

代码语言:javascript
复制
library(leaflet)
library(spdep)
library(ggplot2)

URL <- "https://biogeo.ucdavis.edu/data/gadm3.6/Rsp/gadm36_DEU_1_sp.rds"
data <- readRDS(url(URL))

cns <- knearneigh(coordinates(data), k = 1, longlat = T)
scnsn <- knn2nb(cns, row.names = NULL, sym = T)
cns
scnsn
cS <- nb2listw(scnsn)

# Plotting results
plot(data)
plot(cS, coordinates(data), add = T)

# Plotting in ggplot 
# Converting to data.frame
data_df <- data.frame(coordinates(data))
colnames(data_df) <- c("long", "lat")

n = length(attributes(cS$neighbours)$region.id)
DA = data.frame(
  from = rep(1:n,sapply(cS$neighbours,length)),
  to = unlist(cS$neighbours),
  weight = unlist(cS$weights)
)
DA = cbind(DA, data_df[DA$from,], data_df[DA$to,])
colnames(DA)[4:7] = c("long","lat","long_to","lat_to")


ggplot(data, aes(x = long, y =lat))+
  geom_polygon(aes(group = group), color = "black", fill = FALSE)+
  geom_point(data = data_df, aes(x= long, y = lat), size = 1)+
  geom_segment(data = DA, aes(xend = long_to, yend = lat_to), size=0.5, color = "red")

# Plotting in leaflet
leaflet() %>% addProviderTiles("CartoDB.Positron") %>% 
  addPolygons(data=data, weight = 0.8, fill = F, color = "red") %>% 
  addPolylines(data=DA, lng = DA$long_to, lat = DA$lat_to, weight = 0.85)

可以看出结果leaflet是不正确的(空间图不同)基本图和ggplot中的图是事物应该看起来的样子,

有没有办法在宣传单上重现上面的情节?阅读传单文档对我没有帮助

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-02 00:38:14

一种可能的解决方法是使用在library(leaflet.minicharts)中实现的函数addFlows()

代码语言:javascript
复制
leaflet() %>% addProviderTiles("CartoDB.Positron") %>% 
  addPolygons(data=data, weight = 0.8, fill = F, color = "red") %>% 
  addFlows(lng0 = DA$long, lat0 = DA$lat,lng1 = DA$long_to, lat1 = DA$lat_to, dir = 1, maxThickness= 0.85)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59546958

复制
相关文章

相似问题

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