ฉันจะเปลี่ยนสีเติมรูปหลายเหลี่ยมและสีเส้นขอบสำหรับวัตถุ SpatialPolygons ได้อย่างไร


25

ฉันมี SpatialPolygons หรือ SpatialPolygonsDataFrames ซึ่งฉันต้องการลงจุด ฉันจะเปลี่ยนสีโดยใช้ระบบการลงจุดทั้งสามใน R (กราฟิกพื้นฐาน, ขัดแตะกราฟิกและ ggplot2) ได้อย่างไร

ข้อมูลตัวอย่าง:

library(sp)
Srs1 = Polygons(list(Polygon(cbind(c(2,4,4,1,2),c(2,3,5,4,2)))), "s1")
Srs2 = Polygons(list(Polygon(cbind(c(5,4,2,5),c(2,3,2,2)))), "s2")

SpDF <- SpatialPolygonsDataFrame( SpatialPolygons(list(Srs1,Srs2)), 
            data.frame( z=1:2, row.names=c("s1","s2") ) )
spplot(SpDF, zcol="z")

แผนที่การทดสอบ

คำตอบ:


33

กราฟิกฐาน ( plot)

สำหรับกราฟิกพื้นฐานให้col=ตั้งค่าการเติมและborder=ตั้งค่าสีขอบ

plot(SpDF, col="red",border="green")

หากคุณต้องการแผนที่แบบคนรอบข้างให้ตั้งค่าcol=เวกเตอร์ของสีหนึ่งอันสำหรับค่าข้อมูลของรูปหลายเหลี่ยมแต่ละอัน

กราฟิกพื้นฐาน

กราฟิก Lattice ( spplot)

ซึ่งแตกต่างจากกราฟิกฐานcol=ตัวเลือกสำหรับกราฟิกขัดแตะควบคุมสีของเส้นขอบ ไม่มีพรมแดนชุดcol=NAcol="transparent"หรือ

spplot(SpDF, zcol="z", col=NA)

ไม่มีพรมแดน

สำหรับการเติมรูปหลายเหลี่ยมตั้งcol.regionsเพื่อโครงการ R สีมาตรฐาน ( gray, rainbow.colors, topo.colorsฯลฯ ):

spplot(SpDF, zcol="z", col.regions=gray(seq(0,1,.01)))

col.regions

ggplot2

ตามปกติสำหรับ ggplot2 คุณระบุระดับและเลือกโทนสี อย่างไรก็ตามคุณสามารถแทนที่โครงร่างสำหรับพล็อตทั้งหมดได้ รายละเอียดที่ต้องติดตามในบางจุด


คำถาม / คำตอบที่ดี บางทีคุณอาจต้องการเพิ่มข้อมูลเกี่ยวกับการตั้งค่าสีพื้นหลัง การกำหนดสีพื้นหลังในการใช้งานspplot par.settings = list(panel.background=list(col="lightblue"))
โน
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.