ggplot - 对栅格使用矢量掩码

问题描述

我正在尝试为栅格创建矢量蒙版。光栅是在其他地方创建的一些颜色渐变。这里我只讨论矢量掩码。

对于简单的情况,使用 raster 和 sf 包似乎是一种矫枉过正。我想出的最好方法是绘制矢量对象,将其保存到光栅文件中,读取回来,然后将其覆盖在原始光栅上。

很高兴听到任何更好的建议。

无论如何,当我将绘图写入文件时,它周围总是有一个小框架。在屏幕上显示文件时它可能不可见,但在我的情况下有问题。 我可以移除框架,但我不能只依赖颜色,我不确定它的尺寸总是相同的。这是我的例子:

library(tidyverse)
library(reshape2)
library(bmp)

pol <- tibble(x = c(1,3,5,4),y = c(3,4,1))

p <- ggplot(pol) +
  geom_polygon(aes(x,y),fill = "red") +
  theme(panel.background = element_rect(fill = "black"),panel.grid = element_blank(),axis.title = element_blank(),axis.ticks = element_blank(),axis.text = element_blank())

ggsave("pol.bmp",p,dpi = "screen")

bmp <- read.bmp("pol.bmp")
bmp <- melt(bmp,varnames = c("y","x")) %>%
  mutate(value = as.factor(value))

ggplot(bmp) +
  geom_raster(aes(x,y,fill = value)) +
  theme(legend.position="none")

初始剧情

initial plot

评级图(忽略颜色)

enter image description here

请指教

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)