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