R kullanarak belirli raster değerlerine renk atama


9

Ben değerleri sıfıra yakın bir harita oluşturmak levelplotiçin harika rasterVispaket işlevini kullanıyorum . Kırmızıdan maviye palet kullanarak bir tarama dosyası çiziyorum, ancak haritadaki sıfıra değerlere gri atamaya çalışıyorum.

Özellikle, bu rakamın renklerini çoğaltmak istiyorum:

resim açıklamasını buraya girin

Kırmızıdan maviye bir ölçek kullanıldığında, ancak sıfır değerlerinin gri ile renklendirildiğine dikkat edin.

Şu anda haritalarım şöyle görünüyor:resim açıklamasını buraya girin

Ve bu kodu yeniden oluşturmak için kod (dosya https://www.dropbox.com/s/cypfdu1eaz2fuok/r.annual.tif?dl=0 adresinde bulunabilir ):

# Load required packages
library(rasterVis)

# open file
r.annual <- raster("Downloads/r.annual.tif")

# Set color palette
myTheme=rasterTheme(region=brewer.pal('RdBu', n=11))

# Plot
levelplot(annual.mask, par.settings=myTheme, margin=F)

Yukarıdaki haritamdaki tüm sıfır değerlere nasıl gri atayabilirim?

Yanıtlar:


7

Önceden tanımlanmış iki renk paletini ve istediğiniz gri rengi şu şekilde birleştirerek kendi renk paletinizi tanımlayabilirsiniz: [kırmızı turuncu sarı palet] + [sıfır gri renk] + [blues paleti] . Sıfır değerin gri renkle hizalanmasını nsağlamak için önceden tanımlanmış renk paletleri için aynı sayıda renk ( ) kullanmanız gerekir.

Aşağıdaki yorum kodunu deneyin:

# Load libraries
library('rasterVis')

# open raster file
r.annual <- raster("r.annual.tif")

# Set color palette
zeroCol <-"#B3B3B3" # (gray color, same as your figure example)
reds <- rev(brewer.pal('YlOrRd', n = 7))
blues <- brewer.pal('Blues', n = 7)

myTheme <- rasterTheme(region = c(reds, zeroCol, blues))

# Plot
levelplot(r.annual, par.settings = myTheme, margin = FALSE, main = expression("Precipitation" ~ (mm ~ year^{-1})))

arsa

Grafiğinizin yayınladığınız şekil örneğine benzemediğine dikkat edin, çünkü rasterinizde birçok Nas ile daha seyrek veriler var


Yanıtınız için teşekkürler. Sorunumun muhtemelen haritada çok fazla NA olduğunu fark ettim. Satırınızdan myTheme$panel.background$col = 'grey70'sonra eklemeyi deneyin myThemeve sonucu görmek için onu çizin. Görünüşe göre şimdi görüntünün etrafındaki aşırı NA alanlarından kurtulmam gerekiyor.
thiagoveloso

2
Rica ederim! 0Değerin değerden farklı olduğunu unutmayın NA. Ayrıca farklı anlamları var. Her ikisine de aynı rengi atayabilirsiniz, ancak bence bu uygun değil. Gönderdiğiniz şekle benzeyen bir yağış rasterine sahip olmak istiyorsanız (daha fazla veri), bir öneri, uygun bir tahmin modelini takiben verilerinizi enterpolasyon yapmaya çalışıyor olabilir.
Guzmán
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.