R语言raster包plot绘图时如何移除默认分类图例保留自定义图例
问题说明
使用raster包绘制鲁潘德希地区2010年森林面积分布地图时,plot()函数会自动生成显示1-5分类值的默认图例,与手动添加的自定义图例重复,需要移除默认图例、仅保留自定义的「Forest/森林」「Other Land/其他用地」图例。
涉及的原始绘图代码:
library(raster) RupandehiLULC10<-raster('C:/Users/lenovo/Desktop/EM/RupandehiLULC.tif') plot(RupandehiLULC10) RupandehiLULC10 RupandehiFOG10<-cbind(c(1,2,3,4,5,6,7), c(1,2,3,4,5,5,5)) reclass<-reclassify(RupandehiLULC10,rcl=RupandehiFOG10) plot(reclass, col=c("grey","grey","grey","grey","green","green","green")) plot(reclass, col=c("grey","grey","grey","grey","green","green","green"), axes=FALSE, main="Forest Area of Rupandehi in 2010") legend("bottomright", legend=c("Forest","Other Land"), fill=c("green","grey"), border=FALSE, bty="n")
实现方法
在调用plot()绘制重分类后的栅格对象时,添加参数legend=FALSE即可直接关闭raster包默认生成的分类图例,后续手动添加的自定义图例不会受该参数影响。
修改后的绘图核心代码:
plot(reclass, col=c("grey","grey","grey","grey","green","green","green"), axes=FALSE, main="Forest Area of Rupandehi in 2010", legend = FALSE # 新增该参数关闭默认图例 ) # 原有自定义图例代码无需修改 legend("bottomright", legend=c("Forest","Other Land"), fill=c("green","grey"), border=FALSE, bty="n")
- 注意:
legend=FALSE参数仅需要添加在栅格对象的plot()调用中,不要添加到后续手动调用的legend()函数里,否则会导致自定义图例也无法显示。
内容的提问来源于stack exchange,提问作者Prabhakar
相关产品推荐
相关产品推荐

