mapview:跨组标准化点大小

时间:2019-11-08 10:11:50

标签: r leaflet point r-mapview cex

使用zcolcexburst可以调整mapview中点层内所有层的大小。但是,每个点的大小仅与同一级别内其他点的大小有关。例如,在以下代码中,组number.of.typesa值为14的点的大小与组number.of.typesb值6的点的大小相同。

library(tidyverse)
library(tidyr)
library(mapview)

b = breweries %>% 
  drop_na(number.of.types) %>% 
  mutate(group = ifelse(number.of.types >= 7,"a","b"))

b %>%
  mapview(zcol="group", cex="number.of.types", burst=T)

是否有可能标准化各个级别的点的大小,而不必依靠为每个层级别单独定义它的大小?

1 个答案:

答案 0 :(得分:1)

更新

我刚刚发现将burst参数设置为FALSE似乎可以解决问题?

b %>%
  mapview(zcol="group", cex="number.of.types", burst=FALSE)

enter image description here

上一个答案

我不确定mapview-选项,因为我很少使用该功能。

您可以尝试使用传单重新计算所需的地图(如果我没记错的话,这就是mapview的用途。)

尽管它需要更多的代码行。

library(leaflet)

colorGroup <- colorFactor( topo.colors( 2 ), b$group )

leaflet() %>% addTiles() %>%
  addCircleMarkers( data  = b,
                    #circle size
                    radius  = ~number.of.types,
                    #circle borders
                    color = "black", opacity = 1, stroke = TRUE, weight = 2,
                    #circle inside
                    fillColor = ~ colorGroup( group ), fillOpacity = 0.8 ) 

结果

enter image description here

并且您将不得不添加图例和弹出窗口的代码(如果需要)。