geom_sf的size参数无法改变边框粗细问题求助
解决geom_sf边框粗细无法调整的问题
问题核心原因
在ggplot2 3.4.0版本中,官方对线条类几何元素的参数做了调整:原用于控制线条粗细的size参数被linewidth替代,size现在仅用于控制点(如geom_point)的大小。你使用的正好是ggplot2 3.4.0,因此用size调整geom_sf的边框粗细不会生效。
解决方案
将代码中的size替换为linewidth参数即可:
library(ggplot2) library(sf) nc = sf::st_read(system.file("shape/nc.shp", package = "sf"), quiet = TRUE) # 调整边框粗细为0.1 ggplot(nc) + geom_sf(linewidth = 0.1) # 调整边框粗细为1 ggplot(nc) + geom_sf(linewidth = 1) # 调整边框粗细为10 ggplot(nc) + geom_sf(linewidth = 10)
额外排查点
如果更换参数后仍无效果,可检查以下内容:
- 确认是否存在全局
theme设置覆盖了线条属性(例如theme(panel.border = element_blank())这类设置可能干扰) - 确保没有后续图层覆盖当前
geom_sf的边框样式 - 验证sf对象的几何类型(你的nc是多边形,符合
geom_sf的边框调整逻辑)
内容的提问来源于stack exchange,提问作者myflow
相关产品推荐
相关产品推荐

