ฉันจะ 'หลบ' ตำแหน่งของ geom_point ใน ggplot2 ได้อย่างไร


19

ฉันใช้ ggplot2 ใน R เพื่อทำแปลงเหมือนอันต่อไปนี้:

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

แถบข้อผิดพลาดซ้อนทับกันซึ่งดูยุ่งเหยิงจริงๆ ฉันจะแยกแถบข้อผิดพลาดสำหรับดัชนีต่าง ๆ ได้อย่างไร ฉันใช้ตำแหน่ง = "หลบ" แต่ดูเหมือนจะไม่ทำงาน นี่คือส่วนหลักของรหัสของฉัน:

plot =  ggplot(data,aes(x=ntrunc,y=beta_best,group=ntrunc,colour=INDEX))
       +geom_point(aes(shape=detectable),na.rm=TRUE,position="dodge") 
        +geom_errorbar(aes(x=ntrunc,ymax=beta_high,ymin=beta_low),na.rm=TRUE,position="dodge")

1
คุณเคยลองใช้ "dodge" ที่แตกต่างกันหรือไม่? position = position_dodge(width = 0.90)ตัวอย่างเช่นสิ่งที่ต้องการ: ดูโพสต์นี้
COOLSerdash

ขอบคุณสำหรับตัวอย่าง อย่างไรก็ตามฉันเพิ่งลองค่าความกว้างที่แตกต่างกัน แต่ก็ยังใช้งานไม่ได้
ycc

2
xntruncgroupINDEX

ตอนนี้ทำงานหลังจากฉันเปลี่ยน group = "INDEX" ฉันคิดว่าฉันเข้าใจความหมายของ 'กลุ่ม' ผิด ขอบคุณ @COOLSerdash
ycc

คำตอบ:


12

กลุ่มควร = INDEXแทนntruncใน AES

plot =  ggplot(data, aes(x=ntrunc, y=beta_best, group=INDEX, colour=INDEX)) +
   geom_point(aes(shape=detectable), na.rm=TRUE, position="dodge") +
   geom_errorbar(aes(x=ntrunc, ymax=beta_high, ymin=beta_low), na.rm=TRUE, position="dodge")

พล็อตดูดีขึ้นแล้ว

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


7
สิ่งนี้ไม่ได้ผลสำหรับฉันจนกว่าฉันจะใช้geom_point(aes(shape=detectable),na.rm=TRUE, position=position_dodge(width=0.3))
โนวา

มันจะเป็นการดีถ้าคุณได้รับข้อมูลตัวอย่างที่นี่เพราะฉันไม่สามารถทำซ้ำผลลัพธ์ของคุณได้
LéoLéopold Hertz 준영

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