มีสองสิ่งที่จะส่งผลกระทบต่อความเรียบของพล็อตแบนด์วิดท์ที่ใช้สำหรับการประเมินความหนาแน่นของเคอร์เนลและตัวแบ่งที่คุณกำหนดสีให้กับพล็อต
จากประสบการณ์ของฉันสำหรับการวิเคราะห์เชิงสำรวจฉันเพิ่งปรับแบนด์วิดท์จนกว่าจะได้พล็อตที่มีประโยชน์ การสาธิตด้านล่าง
library(spatstat)
set.seed(3)
X <- rpoispp(10)
par(mfrow = c(2,2))
plot(density(X, 1))
plot(density(X, 0.1))
plot(density(X, 0.05))
plot(density(X, 0.01))
เพียงแค่เปลี่ยนชุดรูปแบบสีเริ่มต้นจะไม่ช่วยอะไรเลยและจะไม่เปลี่ยนความละเอียดของพิกเซล (หากมีสิ่งใดที่ความละเอียดเริ่มต้นนั้นแม่นยำเกินไปและคุณควรลดความละเอียดและทำให้พิกเซลใหญ่ขึ้น) แม้ว่าคุณอาจต้องการเปลี่ยนชุดรูปแบบสีเริ่มต้นเพื่อจุดประสงค์ด้านสุนทรียภาพ แต่ก็มีวัตถุประสงค์เพื่อแยกแยะอย่างมาก
สิ่งที่คุณสามารถทำได้เพื่อช่วยให้สีเปลี่ยนระดับสเกลเป็นลอการิทึม (จริง ๆ แล้วจะช่วยถ้าคุณมีกระบวนการ inhomogenous มาก ) เปลี่ยนจานสีให้แตกต่างกันมากขึ้นที่ปลายล่าง (อคติในแง่ของข้อกำหนดทางลาดสีใน R) หรือปรับคำอธิบายให้มีถังขยะแบบแยกแทนการต่อเนื่อง
ตัวอย่างของการมีอคติในตำนานที่ดัดแปลงมาจากที่นี่และผมก็มีการโพสต์อื่นในเว็บไซต์ GIS อธิบายสีถังขยะเนื่องในตัวอย่างง่ายๆสวยที่นี่ สิ่งเหล่านี้จะไม่ช่วยได้ถ้าหากรูปแบบนั้นสูงหรือต่ำกว่าที่เริ่มต้น
Z <- density(X, 0.1)
logZ <- eval.im(log(Z))
bias_palette <- colorRampPalette(c("blue", "magenta", "red", "yellow", "white"), bias=2, space="Lab")
norm_palette <- colorRampPalette(c("white","red"))
par(mfrow = c(2,2))
plot(Z)
plot(logZ)
plot(Z, col=bias_palette(256))
plot(Z, col=norm_palette(5))
ในการทำให้สีโปร่งใสในภาพสุดท้าย (โดยที่ถาดสีแรกเป็นสีขาว) เพียงแค่สร้างทางลาดสีแล้วเปลี่ยนข้อกำหนด RGB ด้วยสีโปร่งใส ตัวอย่างด้านล่างใช้ข้อมูลเดียวกันกับข้างบน
library(spatstat)
set.seed(3)
X <- rpoispp(10)
Z <- density(X, 0.1)
A <- rpoispp(100) #points other places than density
norm_palette <- colorRampPalette(c("white","red"))
pal_opaque <- norm_palette(5)
pal_trans <- norm_palette(5)
pal_trans[1] <- "#FFFFFF00" #was originally "#FFFFFF"
par(mfrow = c(1,3))
plot(A, Main = "Opaque Density")
plot(Z, add=T, col = pal_opaque)
plot(A, Main = "Transparent Density")
plot(Z, add=T, col = pal_trans)
pal_trans2 <- paste(pal_opaque,"50",sep = "")
plot(A, Main = "All slightly transparent")
plot(Z, add=T, col = pal_trans2)