การเข้ารหัสสามเงื่อนไขในพล็อตกระจายใน ggplot2

ฉันต้องการสร้าง ggplot2 พล็อตกระจาย (geom_point) โดยที่โค้ดคะแนนสำหรับคุณลักษณะที่แตกต่างกันสามประการ เลยคิดว่าจะใช้ shape, colour และ fill (โดยใช้รูปทรง 21 ถึง 25 ที่สามารถเติมได้) แม้ว่าโครงเรื่องจะดูดี แต่คำอธิบายไม่ได้แสดงสีเติม (จุดทั้งหมดปรากฏเป็นสีดำ) นี่คือ MWE โปรดสังเกตสัญลักษณ์สีดำสำหรับ carb:

p <- ggplot(mtcars, aes(wt, mpg, shape = factor(gear),
                    fill = factor(carb), colour = factor(cyl)))
p + geom_point(size = 3) + scale_shape_manual(values = 21:25)

มีวิธีเปลี่ยน fill-legend ให้แสดงสีจริงหรือไม่?


person AnjaM    schedule 10.05.2014    source แหล่งที่มา
comment
ฉันไม่แน่ใจ แต่ฉันไม่คิดว่าคุณจะสามารถแมป color และ fill กับตัวแปรที่แตกต่างกันใน geom_point ได้ คุณไม่ควรอยู่แล้ว   -  person Roland    schedule 10.05.2014
comment
@Roland การทำแผนที่นั้นใช้งานได้ (เช่นเดียวกับใน MWE) มันเป็นเพียงตำนานที่ใช้งานไม่ได้ ใช่ ฉันจำเป็นต้องเขียนโค้ด (อย่างน้อย) สามคุณสมบัติในพล็อตเดียว มันจะไม่ใช่ไดอะแกรมที่มีตัวเลขที่มีความหมาย แต่เป็นเพียงรูปภาพที่แสดงการออกแบบการทดลอง ซึ่งคล้ายกับอันนี้: r-bloggers.com/plotting-microtiter-plate-maps อย่างไรก็ตาม หากคุณมีข้อเสนอแนะเกี่ยวกับวิธีอื่นในการเขียนโค้ดคุณสมบัติที่สาม ฉันยินดีที่จะทราบ   -  person AnjaM    schedule 10.05.2014
comment
ggplot(mtcars, aes(wt, mpg, shape = factor(gear), colour = factor(carb))) + geom_point(size = 3) + facet_grid(.~cyl) น่าจะเป็นโครงเรื่องที่ดีกว่า   -  person Roland    schedule 10.05.2014
comment
@Roland โปรดดูที่เว็บลิงค์ที่ให้ไว้ อีกครั้ง: ฉันจะไม่พล็อตตัวเลขที่มีความหมาย แต่เป็นการออกแบบจาน ไม่สามารถเจียระไนแผ่นไมโครไตเตอร์ได้   -  person AnjaM    schedule 10.05.2014


คำตอบ (1)


ฉันคิดว่าวิธีนี้ใช้ได้ผล โดยเปลี่ยนรูปร่างในตำนานการเติมเป็น 21:

p + geom_point(size = 3) + 
    scale_shape_manual(values = 21:25)+
      scale_fill_discrete(guide=guide_legend(override.aes=list(shape=21)))
person Ben Bolker    schedule 10.05.2014
comment
ขอบคุณมาก มันดูสมบูรณ์แบบ! คุณรู้ไหมว่าเป็นไปได้หรือไม่ที่จะทำให้เส้นสีรอบๆ จุดต่างๆ หนาขึ้นเพื่อให้มองเห็นได้ชัดเจนยิ่งขึ้นบนโครงเรื่อง? - person AnjaM; 10.05.2014
comment
ฉันก็แค่จะแนะนำแบบนั้น ฉันคิดว่าการปรับความกว้างของเส้น (lwd) จะช่วยได้ - person Ben Bolker; 10.05.2014
comment
ขออภัย การตั้งค่า lwd ใน geom_point ไม่ได้ทำอะไรเลย - person AnjaM; 10.05.2014
comment
นี่ดูเหมือนจะเป็นคำตอบสำหรับเรื่องราว lwd: stackoverflow.com/questions/17677687/ ขอบคุณสำหรับความช่วยเหลือของคุณ! - person AnjaM; 10.05.2014