R tmap tm_add_legend alpha不';t为“工作”;填写「;
我试图更改图例的alpha值以匹配多边形填充的alpha值,但是当我在R tmap tm_add_legend alpha不';t为“工作”;填写「;,r,gis,legend,sf,tmap,R,Gis,Legend,Sf,Tmap,我试图更改图例的alpha值以匹配多边形填充的alpha值,但是当我在tm\u add\u 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
tm\u add\u 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)
图书馆(sf)
nc我不确定tmap在这种情况下究竟是如何工作的。但我找到了一个解决办法。我创建了一个名为mycat
的虚拟变量。然后,我将此变量用于tm_polygons()
中的col
,并指定在调色板中使用的颜色。这样,您就不必使用tm\u add\u legend()
我不确定tmap在这种情况下究竟是如何工作的。但我找到了一个解决办法。我创建了一个名为mycat
的虚拟变量。然后,我将此变量用于tm_polygons()
中的col
,并指定在调色板中使用的颜色。这样,您就不必使用tm\u add\u legend()
这是一个很好的解决方法,谢谢!我仍然很好奇为什么alpha没有做我认为它应该做的事情。@geo_rkal我对tmap不熟悉。但似乎tm\u add\u legend()
未链接到tm\u polygons()
。我的印象是,它正在创建一个自定义/手动图例。如果您查看一些tmap示例,您不会看到它们使用tm\u add\u legend()
。在这些示例中,我看到他们实际上像我一样为col
分配了一个变量。按照编写代码的方式,您手动为col
指定了一种颜色。这就像在ggplot中是否有aes()
中的fill
一样。不知何故,tmap不喜欢你的方式。@geo_rkal所以我的结论是使用col
,就像它在ggplot中的aes()
中一样。通过这种方式,我们可以创建上面的图形。我希望这个解释对你有所帮助。是的,这是有道理的。你是对的,tm_add_legend
制作了一个手动图例,但它似乎不像我想象的那样接受所有参数。我会坚持你的方法,这是一个很好的解决办法,谢谢!我仍然很好奇为什么alpha没有做我认为它应该做的事情。@geo_rkal我对tmap不熟悉。但似乎tm\u add\u legend()
未链接到tm\u polygons()
。我的印象是,它正在创建一个自定义/手动图例。如果您查看一些tmap示例,您不会看到它们使用tm\u add\u legend()
。在这些示例中,我看到他们实际上像我一样为col
分配了一个变量。按照编写代码的方式,您手动为col
指定了一种颜色。这就像在ggplot中是否有aes()
中的fill
一样。不知何故,tmap不喜欢你的方式。@geo_rkal所以我的结论是使用col
,就像它在ggplot中的aes()
中一样。通过这种方式,我们可以创建上面的图形。我希望这个解释对你有所帮助。是的,这是有道理的。你是对的,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")