R ggplot如何在使用“剪切”后显示不带NA值的光栅;面具;?

R ggplot如何在使用“剪切”后显示不带NA值的光栅;面具;?,r,ggplot2,legend,r-raster,gplots,R,Ggplot2,Legend,R Raster,Gplots,使用“遮罩”功能根据多边形切割光栅后: ras <- mask(ras0, polygon) ras似乎scale\u fill\u manual在使用因子时显示NA值。定义真正想要显示的因素的一种方法是使用其他参数中断和标签,以及对应向量。如果我使用您的代码,这将是: # Vector of correspondence cols <- c("A" = "red", "B" = "#22751a", "C" = "#48c665", "D" = "#d3d53

使用“遮罩”功能根据多边形切割光栅后:

ras <- mask(ras0, polygon)

ras似乎
scale\u fill\u manual
在使用因子时显示NA值。定义真正想要显示的因素的一种方法是使用其他参数
中断
标签
,以及对应向量。如果我使用您的代码,这将是:

# Vector of correspondence
cols <- c("A" = "red", "B" = "#22751a", "C" = "#48c665",
          "D" = "#d3d532", "E" = "#d78d0d", "F" = "#f6e600","G" = "#65d6ef")

# plot
gplot(ras) +
geom_tile(aes(fill=factor(value, labels=c("A", "B", "C", "D", "E", "F","G"))))+
  scale_fill_manual(values = cols,
                    breaks = c("A", "B", "C", "D", "E", "F","G"),
                    labels = c("A", "B", "C", "D", "E", "F","G"),
                    name= "Legend") +
  coord_cartesian(xlim = c(-7, 12),ylim = c(32, 38)) +
theme(panel.background = element_rect(colour = "black", fill="lightblue")) 
#对应向量

cols似乎
scale\u fill\u manual
在使用因子时显示NA值。定义真正想要显示的因素的一种方法是使用其他参数
中断
标签
,以及对应向量。如果我使用您的代码,这将是:

# Vector of correspondence
cols <- c("A" = "red", "B" = "#22751a", "C" = "#48c665",
          "D" = "#d3d532", "E" = "#d78d0d", "F" = "#f6e600","G" = "#65d6ef")

# plot
gplot(ras) +
geom_tile(aes(fill=factor(value, labels=c("A", "B", "C", "D", "E", "F","G"))))+
  scale_fill_manual(values = cols,
                    breaks = c("A", "B", "C", "D", "E", "F","G"),
                    labels = c("A", "B", "C", "D", "E", "F","G"),
                    name= "Legend") +
  coord_cartesian(xlim = c(-7, 12),ylim = c(32, 38)) +
theme(panel.background = element_rect(colour = "black", fill="lightblue")) 
#对应向量

科尔斯,我认为代码不完整,我们无法复制。据我所知,
ggplot
无法处理RasterLayer类。或者您使用
ras做了一些您没有显示的事情。什么是
ras0
?请在您的帖子中添加图片或使您的示例重现。我无法打开你的.tif文件。很抱歉出现此显示问题,现在我将我的地图“ras”放在Ricoderks和Roman Luštrik上方的链接中。现在可以显示光栅“ras”了吗。谢谢你的回答,我认为代码不完整,我们无法复制。据我所知,
ggplot
无法处理RasterLayer类。或者您使用
ras做了一些您没有显示的事情。什么是
ras0
?请在您的帖子中添加图片或使您的示例重现。我无法打开你的.tif文件。很抱歉出现此显示问题,现在我将我的地图“ras”放在Ricoderks和Roman Luštrik上方的链接中。现在可以显示光栅“ras”了吗。谢谢你的回答
# Vector of correspondence
cols.nb <- c("0" = "blue", "1" = "red", "2" = "#22751a", "3" = "#48c665",
          "4" = "#d3d532", "5" = "#d78d0d", "6" = "#f6e600", 
          "7" = "#65d6ef")
# Plot
gplot(ras) +
geom_tile(aes(fill = as.character(value))) +
  scale_fill_manual(values = cols.nb,
                    breaks = 0:7,
                    labels = c("A", "B", "C", "D", "E", "F","G","H"),
                    name = "Legend") +
  coord_cartesian(xlim = c(-7, 12),ylim = c(32, 38)) +
theme(panel.background = element_rect(colour = "black", fill="lightblue"))