簡體   English   中英

具有分類數據的柵格地圖圖例

[英]Legend of a raster map with categorical data

我想繪制一個包含 4 個不同值 ( 1 ) 的柵格,其中包含描述類別的分類文本圖例,例如2但帶有顏色框:

我試過使用圖例,例如:

legend( 1,-20,legend = c("land","ocean/lake", "rivers","water bodies"))

但我不知道如何將一個值與顯示的顏色相關聯。 有沒有辦法檢索用“繪圖”顯示的顏色並在圖例中使用它?

初始柵格

帶有圖例的光柵

rasterVis包包含一個用於levelplot()Raster方法,該方法繪制分類變量並生成適當的圖例:

library(raster)
library(rasterVis)

## Example data
r <- raster(ncol=4, nrow=2)
r[] <- sample(1:4, size=ncell(r), replace=TRUE)
r <- as.factor(r)

## Add a landcover column to the Raster Attribute Table
rat <- levels(r)[[1]]
rat[["landcover"]] <- c("land","ocean/lake", "rivers","water bodies")
levels(r) <- rat

## Plot
levelplot(r, col.regions=rev(terrain.colors(4)), xlab="", ylab="")

在此處輸入圖片說明

默認情況下,柵格圖中使用的顏色由rev(terrain.colors()) (請參閱?raster::plot )。 您可以使用它為您的圖例重新創建 4 種顏色的序列 - 或選擇隨機的顏色序列:

my_col = rev(terrain.colors(n = 4))
# my_col = c('beige','red','green','blue')

首先使用顏色序列繪制地圖。 legend = FALSE去掉了標准顏色條:

plot(my_raster, legend = FALSE, col = my_col)

在左下角添加自定義圖例。 使用fill參數生成彩色框:

legend(x='bottomleft', legend = c("land", "ocean/lake", "rivers", "water bodies"), fill = my_col)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM