跨组标准化点大小

Standardising point size across groups

使用zcolcexburst 可以调整mapview 中点图层内所有级别的大小。但是,每个点的大小仅与同一级别内其他点的大小有关。例如,在下面的代码中,a 组中 number.of.types 值为 14 的点的大小与 b 组中 number.of.types 值为 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)

是否可以跨级别标准化点的大小,而不必为每个图层级别单独定义它?

更新

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

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

上一个回答

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

您可以尝试使用 leaflet 重现您想要的地图(如果我没记错的话,这就是 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 ) 

结果

并且您必须为图例和弹出窗口添加代码(如果需要)。