วิธีกำหนดสีให้กับค่าแรสเตอร์เฉพาะโดยใช้ R


9

ฉันกำลังใช้levelplotฟังก์ชั่นของrasterVisแพ็คเกจสุดเจ๋งเพื่อสร้างแผนที่ที่มีค่าต่างกันประมาณศูนย์ ฉันกำลังวางแผนไฟล์แรสเตอร์โดยใช้จานสีแดงเป็นสีน้ำเงิน แต่ฉันพยายามกำหนดค่าสีเทาให้เป็นศูนย์ในแผนที่

โดยเฉพาะฉันต้องการทำซ้ำสีของรูปนี้:

ป้อนคำอธิบายรูปภาพที่นี่

ขอให้สังเกตว่ามีการใช้ระดับสีแดงถึงสีน้ำเงิน แต่ค่าศูนย์มีการใช้สีเทา

ขณะนี้แผนที่ของฉันมีลักษณะดังนี้:ป้อนคำอธิบายรูปภาพที่นี่

และนี่คือรหัสที่จะทำซ้ำ (ไฟล์มีอยู่ที่https://www.dropbox.com/s/cypfdu1eaz2fuok/r.annual.tif?dl=0 ):

# 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)

ฉันจะกำหนดสีเทาให้กับค่าศูนย์ทั้งหมดในแผนที่ของฉันด้านบนได้อย่างไร

คำตอบ:


7

คุณสามารถกำหนดจานสีของคุณเองโดยการเชื่อมโยงสองจานสีที่กำหนดไว้ล่วงหน้าและสีเทาที่ต้องการของคุณเป็น: [สีส้มสีแดงสีเหลืองจาน] + [ศูนย์สีเทา] + [จานบลูส์] ในการรับค่าศูนย์ที่สอดคล้องกับสีเทาคุณต้องใช้จำนวนสีเดียวกัน ( n) สำหรับจานสีที่กำหนดไว้ล่วงหน้า

ลองรหัสความคิดเห็นด้านล่าง:

# 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})))

พล็อต

โปรดสังเกตว่าพล็อตของคุณจะไม่เหมือนตัวอย่างรูปที่คุณโพสต์เนื่องจากแรสเตอร์ของคุณมีข้อมูลที่กระจัดกระจายมากขึ้นด้วย Nas จำนวนมาก


ขอบคุณสำหรับการตอบกลับ. ฉันรู้ว่าปัญหาของฉันน่าจะเป็นของ NA มากเกินไปในแผนที่ ลองเพิ่มmyTheme$panel.background$col = 'grey70'หลังจากmyThemeบรรทัดของคุณและลงจุดเพื่อดูผลลัพธ์ เห็นได้ชัดว่าตอนนี้ฉันต้องกำจัดพื้นที่ NA ที่มากเกินไปรอบภาพ
thiagoveloso

2
ยินดี! โปรดทราบว่า0ค่านั้นแตกต่างจากNAค่า พวกเขามีความหมายต่างกัน คุณสามารถกำหนดสีเดียวกันให้กับทั้งสอง แต่ฉันคิดว่ามันไม่เหมาะสม หากคุณต้องการให้มีแรสเตอร์การตกตะกอนซึ่งมีลักษณะเหมือนรูปที่คุณโพสต์ (ข้อมูลเพิ่มเติม) คำแนะนำอย่างหนึ่งอาจจะพยายามแก้ไขข้อมูลของคุณตามรูปแบบการทำนายที่เหมาะสม
Guzmán
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.