调整Mapview中LineString对象的线宽与颜色
解决珊瑚礁可视化的两个优化需求
嘿,从你提到的mapview局部放大图来看,当前线条确实偏细,缩小时辨识度不够,统一颜色也不利于区分不同珊瑚礁群组。你的思路用LineString提升大范围珊瑚礁数据的映射效率真的很赞!针对你提出的两个优化点,直接给你调整后的代码和细节说明:
调整后的完整代码
library(mapview) library(sf) library(dplyr) data_as_sf %>% filter(reef_name %in% subgroup) %>% group_by(reef_name, reef_section) %>% summarize() %>% st_cast("LINESTRING") %>% mapview( lwd = 5, # 增大线条宽度,数值可按需调整 zcol = "reef_name"# 按reef_name因子分配颜色 )
细节解释
- 增大线条宽度:通过
mapview()里的lwd参数设置线条宽度,我这里用了5,你可以根据缩放后的显示效果灵活调整(比如3-8之间都很合适),缩小时就能更清晰地识别每条珊瑚礁线条了。 - 按reef_name分配颜色:用
zcol = "reef_name"告诉mapview根据reef_name这个因子变量给不同群组的线条分配独特颜色,mapview还会自动生成对应的图例,方便你快速区分不同珊瑚礁。如果想要自定义调色板,可以额外加上col.regions参数,比如用RColorBrewer的经典配色:
这样就能用你喜欢的色系来区分不同珊瑚礁群组啦!col.regions = RColorBrewer::brewer.pal(length(unique(subgroup)), "Set2")
内容的提问来源于stack exchange,提问作者Syzorr
相关产品推荐
相关产品推荐

