Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R tmap tm_add_legend alpha不';t为“工作”;填写「;_R_Gis_Legend_Sf_Tmap - Fatal编程技术网

R tmap tm_add_legend alpha不';t为“工作”;填写「;

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

我试图更改图例的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, 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")