在 Mapview 中绘制点数据 - 点符号大小的非线性比例?

plotting point data in Mapview - non-linear scale for point symbol sizes?

mapview 库是否有办法使用非线性比例绘制点符号的大小?例如,使用几何间隔、自定义间隔向量或基于 Jenks 自然中断方法之类的间隔? (mapview's '线性设置点大小 'cex'': https://r-spatial.github.io/mapview/articles/articles/mapview_02-advanced.html )

我的用例是绘制河流流量数据的许多点,但由于海洋潮汐在海岸的高值和低值占主导地位,以至于基本上所有非沿海位置似乎都有符号大小(代表河流流量)几乎没有什么不同,而我希望用户可以轻松地将差异可视化,例如小溪与河流(例如,这里的三组值在 1000 年代,另一组在 5000 年代,另一组在 9000 年代) .

library(mapview)
library(sf)

lat <- seq(1, 20, 1)
lon <- lat
value_to_visualize <- c(461000, 1500, 1400, 1450, 1350, 1100, 1400, 2000, 9040, 9060, 
                    9080, 9990, 9995, 5750, 5500, 5400, 5300, 5100, 5050, -60000)

df <- data.frame(lat,lon, value_to_visualize)
df <- st_as_sf(df, coords = c("lon", "lat"), crs = 4326) 

m <- mapview(df["value_to_visualize"], 
         cex = "value_to_visualize",
         legend = TRUE,
         layer.name = "cfs")  
m

library(mapview)
library(sf)

lat <- seq(1, 20, 1)
lon <- lat
value_to_visualize <- c(461000, 1500, 1400, 1450, 1350, 1100, 1400, 2000, 9040, 9060, 
                        9080, 9990, 9995, 5750, 5500, 5400, 5300, 5100, 5050, -60000)


cluster_to_visualize <- dplyr::case_when(value_to_visualize<1000 ~ 1,
                                         value_to_visualize<5000 ~ 3,
                                         value_to_visualize<9000 ~ 5,
                                         value_to_visualize>9000 ~ 7)

df <- data.frame(lat,lon, cluster_to_visualize, value_to_visualize)
df <- st_as_sf(df, coords = c("lon", "lat"), crs = 4326) 

m <- mapview(df["value_to_visualize"], 
             cex = df$cluster_to_visualize,
             legend = TRUE,
             layer.name = "cfs") 

reprex package (v0.3.0)

于 2019-06-05 创建