选择要与 sf.colors 一起使用的颜色

chose color to use with sf.colors

我正在使用 sf 包构建静态地图,我希望我的地图具有特定的颜色和透明度。我可以设法让两者独立但不能在一起。

library(sf)    
nc = st_read(system.file("gpkg/nc.gpkg", package="sf"), quiet = TRUE)

我可以简单地让地图全红:

plot(nc["SID74"], col="red")

产生:

如果我想添加透明度,我必须更改 col 参数并将其传递给 sf.colors 调用:

plot(nc["SID74"], col=sf.colors(n=1, alpha=0.3))

产生:

我有透明度,但它是默认的蓝色,我在 ?sf.colors 中找不到将其更改为红色的选项。我要设置颜色还要有透明度

知道怎么做吗?

如果您有想要使用的特定颜色,则无需使用 sf.colors 函数。这会为您选择一个调色板。 sf.colors 函数不是为绘图设置颜色的唯一方法,如果您想在其他地方使用它们,它只是公开 sf 使用的默认颜色。

如果你想调整现有颜色的透明度,scales 包有一个辅助函数可以做到这一点。

plot(nc["SID74"], col=scales::alpha("red", .3))

可以看到scales::alpha("red", .3)returns

[1] "#FF00004D"

所以它基本上是一个 rgb-hex 值,带有一个额外的透明字节。您还可以使用 rgb() 函数来构造类似的对象。