มีปัญหาหลายอย่างที่ทำให้ยากหรือเป็นไปไม่ได้ที่จะดึงข้อมูลที่ใช้งานได้จากเมทริกซ์สแคตเตอร์ล็อตของคุณ
คุณมีตัวแปรที่แสดงมากเกินไปเข้าด้วยกัน เมื่อคุณมีตัวแปรจำนวนมากในเมทริกซ์การกระจายแต่ละพล็อตจะเล็กเกินไปที่จะเป็นประโยชน์ สิ่งที่สังเกตได้คือมีการทำซ้ำหลายแปลงซึ่งทำให้เปลืองพื้นที่ นอกจากนี้แม้ว่าคุณต้องการเห็นชุดค่าผสมทุกชุดคุณไม่จำเป็นต้องพล็อตชุดค่าผสมทั้งหมดเข้าด้วยกัน ขอให้สังเกตว่าคุณสามารถแบ่งเมทริกซ์กระจายเป็นบล็อกเล็ก ๆ สี่หรือห้า (ตัวเลขที่สามารถมองเห็นได้เป็นประโยชน์) คุณเพียงแค่ต้องทำการแปลงหลาย ๆ แปลงสำหรับแต่ละแปลง
เนื่องจากคุณมีข้อมูลจำนวนมากที่จุดที่ไม่ต่อเนื่องในอวกาศพวกมันจึงจบลงด้วยการซ้อนทับกัน ดังนั้นคุณไม่สามารถดูจำนวนคะแนนในแต่ละตำแหน่งได้ มีเทคนิคหลายอย่างที่จะช่วยคุณจัดการเรื่องนี้
- 0.5
- ด้วยข้อมูลจำนวนมากการกระวนกระวายใจจะทำให้ผู้สังเกตการณ์มองเห็นได้ยาก คุณสามารถใช้สีที่มีความอิ่มตัวสูง แต่ส่วนใหญ่โปร่งใสสำหรับบัญชีนี้ ในกรณีที่มีข้อมูลจำนวนมากซ้อนกันอยู่ด้านบนสีจะเข้มขึ้นและมีความหนาแน่นน้อยสีจะจางลง
- เพื่อความโปร่งใสในการทำงานคุณจะต้องใช้สัญลักษณ์ที่เป็นของแข็งเพื่อแสดงข้อมูลของคุณในขณะที่ R ใช้วงกลมกลวงตามค่าเริ่มต้น
ใช้กลยุทธ์เหล่านี้นี่คือตัวอย่างรหัส R และแปลงที่ทำ:
# the alpha argument in rgb() lets you set the transparency
cols2 = c(rgb(red=255, green=0, blue=0, alpha=50, maxColorValue=255),
rgb(red=0, green=0, blue=255, alpha=50, maxColorValue=255) )
cols2 = ifelse(breast$class==2, cols2[1], cols2[2])
# here we jitter the data
set.seed(6141) # this makes the example exactly reproducible
jbreast = apply(breast[,1:9], 2, FUN=function(x){ jitter(x, amount=.5) })
jbreast = cbind(jbreast, class=breast[,10]) # the class variable is not jittered
windows() # the 1st 5 variables, using pch=16
pairs(jbreast[,1:5], col=cols2, pch=16)
windows() # the 2nd 5 variables
pairs(jbreast[,6:10], col=cols2, pch=16)
windows() # to match up the 1st & 2nd sets requires more coding
layout(matrix(1:25, nrow=5, byrow=T))
par(mar=c(.5,.5,.5,.5), oma=c(2,2,2,2))
for(i in 1:5){
for(j in 6:10){
plot(jbreast[,j], jbreast[,i], col=cols2, pch=16,
axes=F, main="", xlab="", ylab="")
box()
if(j==6 ){ mtext(colnames(jbreast)[i], side=2, cex=.7, line=1) }
if(i==5 ){ mtext(colnames(jbreast)[j], side=1, cex=.7, line=1) }
if(j==10){ axis(side=4, seq(2,10,2), cex.axis=.8) }
if(i==1 ){ axis(side=3, seq(2,10,2), cex.axis=.8) }
}
}