You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 22:57:19