微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ggplot - 对栅格使用矢量掩码

如何解决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 举报,一经查实,本站将立刻删除。