Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/68.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 如何在ggplot geom_地图中用之字形或斜线填充NA值?_R_Ggplot2 - Fatal编程技术网

R 如何在ggplot geom_地图中用之字形或斜线填充NA值?

R 如何在ggplot geom_地图中用之字形或斜线填充NA值?,r,ggplot2,R,Ggplot2,我正在制作一张世界地图,用灰色阴影填充不同变量值的国家。对于具有NA值的国家,我希望用之字形、斜线或八字形填充它们。最终的地图将是黑白的,因此太多的灰色或彩色阴影将不会产生可区分的结果。我希望因子变量(0-3)的值有不同的灰色阴影,NA值有一个模式。现在,na.value的代码显示为“蓝色”,但它必须更改 ggplot(CRSVmap, aes(map_id = region, fill = as.factor(SV)))+ geom_map(map = CRSVmap, color = "b

我正在制作一张世界地图,用灰色阴影填充不同变量值的国家。对于具有NA值的国家,我希望用之字形、斜线或八字形填充它们。最终的地图将是黑白的,因此太多的灰色或彩色阴影将不会产生可区分的结果。我希望因子变量(0-3)的值有不同的灰色阴影,NA值有一个模式。现在,na.value的代码显示为“蓝色”,但它必须更改

ggplot(CRSVmap, aes(map_id = region, fill = as.factor(SV)))+
geom_map(map = CRSVmap,  color = "black")+  
scale_fill_grey(start = 0.99, end = 0.1, na.value = "blue")

这是一个相当粗糙的解决方案,可能需要一些调整。我切换到
sf
,以简化一些空间操作

首先要做的是将
NA
值映射为空,通过将
NA
值映射到alpha,并将该alpha设置为0

我看到@JonSpring对这个软件包的评论(看起来它还处于测试阶段),就开始摆弄它。诀窍在于,到目前为止,
ggtextures
只生成条形和矩形,而不是填充地图中缺失区域所需的更复杂形状

取而代之的是,制作一个与整个地图大小相同的矩形,并用纹理填充它(我制作了一个小的阴影SVG文件)。在上面,添加一层,将遮罩水域,否则纹理将显示通过那里。我通过获取地图边界框和陆地区域之间的空间差异来制作遮罩

库(ggplot2)
图书馆(dplyr)
图书馆(sf)
图书馆(GG)
数据(wrld_siml,package=“maptools”)
种子(10)
世界%
选择(名称=名称,几何图形)%>%
变异(值=样本(c(字母[1:4],NA),大小=nrow(.),替换=T))

world_bbox这是一个相当粗糙的解决方案,可能需要一些调整。我切换到
sf
,以简化一些空间操作

首先要做的是将
NA
值映射为空,通过将
NA
值映射到alpha,并将该alpha设置为0

我看到@JonSpring对这个软件包的评论(看起来它还处于测试阶段),就开始摆弄它。诀窍在于,到目前为止,
ggtextures
只生成条形和矩形,而不是填充地图中缺失区域所需的更复杂形状

取而代之的是,制作一个与整个地图大小相同的矩形,并用纹理填充它(我制作了一个小的阴影SVG文件)。在上面,添加一层,将遮罩水域,否则纹理将显示通过那里。我通过获取地图边界框和陆地区域之间的空间差异来制作遮罩

库(ggplot2)
图书馆(dplyr)
图书馆(sf)
图书馆(GG)
数据(wrld_siml,package=“maptools”)
种子(10)
世界%
选择(名称=名称,几何图形)%>%
变异(值=样本(c(字母[1:4],NA),大小=nrow(.),替换=T))

world_bbox类似问题的答案依赖于
ggtextures
package:类似问题的答案依赖于
ggtextures
package: