如何在Plotly中用单一颜色填充多边形?fill参数无效问题
在Plotly中给多边形填充单一颜色的简便方法
问题说明
你提到的plot_geo中fill参数无效是因为该函数顶层并不支持这个参数,要实现单一填充色,不需要复杂变通,直接用以下两种方法即可:
方法一:利用颜色映射+关闭颜色条
通过给所有多边形指定同一个常量值,配合colors参数设置单一填充色,再关闭颜色条:
library(sf) library(plotly) nc <- sf::st_read(system.file("shape/nc.shp", package = "sf"), quiet = TRUE) plot_geo(nc, color = I(1), colors = "blue") %>% colorbar(showscale = FALSE)
如果需要调整边框颜色,可额外添加line参数:
plot_geo(nc, color = I(1), colors = "blue", line = list(color = "red", width = 1)) %>% colorbar(showscale = FALSE)
方法二:使用add_sf配合marker参数
这种方式逻辑更直接,通过marker的color属性直接设置填充色,line属性单独控制边框:
library(sf) library(plotly) nc <- sf::st_read(system.file("shape/nc.shp", package = "sf"), quiet = TRUE) plot_geo(nc) %>% add_sf(marker = list(color = "blue", line = list(color = "red", width = 1)))
为什么原代码的fill参数无效?
plot_geo的顶层参数中没有fill这个配置项,该参数通常用于add_trace类函数的填充模式(比如区域填充),直接在plot_geo中传入不会被识别,所以无法生效。
内容的提问来源于stack exchange,提问作者Mark R
相关产品推荐
相关产品推荐

