tmap tm_add_legend alpha 不适用于 "fill"

tmap tm_add_legend alpha doesn't work for "fill"

我正在尝试更改图例的 alpha 值以匹配多边形填充的 alpha 值,但是当我在 tm_add_legend 中指定 alpha 参数时似乎没有任何反应。有什么我在这里遗漏的非常明显的东西吗?

library(tmap)
library(sf)

nc <- st_read(system.file("shape/nc.shp", package="sf"))

tm_shape(nc) + 
tm_polygons(col = "#326abf", border.col = "white", lwd = 2, alpha = 0.5) +
tm_add_legend(type = "fill", 
              alpha = 0.5,
              labels = "NC",
              col = "#326abf")

我不确定 tmap 在这种情况下是如何工作的。但我找到了解决方法。我创建了一个名为 mycat 的虚拟变量。然后,我在 tm_polygons() 中将此变量用于 col,并在 palette 中指定您正在使用的颜色。这样,您就不必使用 tm_add_legend().

library(dplyr)
library(sf)
library(tmap)

mutate(nc, mycat = "one") -> nc

tm_shape(nc) +
tm_polygons(col = "mycat", 
            palette = "#326abf",
            border.col = "white", lwd = 2, alpha = 0.5,
            title = "",
            labels = "NC")