Raster legend ใน R: วิธีการเติมสีค่าเฉพาะ?


30

ฉันมีโมเดลการยกระดับใน R

r <- raster("example.dem")
plot(r, col = topo.colors(20))

จุดยกระดับ

ค่าบางค่าอยู่ต่ำกว่าระดับน้ำทะเล (0) และฉันต้องการให้ค่าเหล่านั้นแสดงเป็นสีแดง ฉันจะกำหนดช่วงเฉพาะให้กับสีเฉพาะในพล็อต () ได้อย่างไร

คำตอบ:


33

นี่เป็นตัวอย่างง่ายๆ

library(raster)
data(volcano)
volcanoR <- raster(volcano)

#making colors below 100 red and above 180 blue in this example

breakpoints <- c(94,100,120,140,160,180,195)
colors <- c("red","white","white","white","white","blue")
plot(volcanoR,breaks=breakpoints,col=colors)

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

คุณเพียงแค่ต้องผ่านพล็อตเวกเตอร์จุดพักและเวกเตอร์ของสีเพื่อให้ตรงกับจุดพัก ลองดูRColorbrewerแพ็คเกจสำหรับทางลาดสีที่สวยงาม ตรวจสอบclassIntแพ็กเกจสำหรับการทำเบรกพอยต์


ยอดเยี่ยมน่าอายว่าฉันเล่นกับเรื่องนี้นานแค่ไหน มีวิธีที่ตรงไปตรงมาในการนำเข้าทางลาดสีจากผู้ผลิตสีหรือไม่ แก้ไข: ขอโทษตอนนี้ฉันเห็นคุณกำลังอ้างถึงแพคเกจไม่ใช่เว็บไซต์!
Simbamangu

3
@Simbamangu เราทุกคนเคยไปที่นั่นแล้ว ฉันพบตัวอย่างมากมายของการทำสิ่งที่ทำให้งงงวยสิ่งที่ถูกส่งผ่านเป็นเบรกพอยต์และสีโดยใช้วัตถุที่สร้างจากแพ็คเกจอื่น ๆ (เช่นที่ฉันแนะนำ) ฉันคิดว่ามันง่ายที่สุดที่จะเห็นอย่างนี้แล้วใช้แพ็คเกจอื่น ๆ เพื่อสร้างเบรกพอยต์และทางลาดสีที่เหมาะสมโดยไม่ต้องทำงานมากนัก
Andy W

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