Làm cách nào tôi có thể 'né' vị trí của geom_point trong ggplot2?


19

Tôi đang sử dụng ggplot2 trong R để tạo các ô như sau:

nhập mô tả hình ảnh ở đây

Các lỗi xuất hiện chồng chéo lên nhau trông rất lộn xộn. Làm cách nào tôi có thể tách các lỗi cho các chỉ số khác nhau? Tôi đã sử dụng vị trí = "né" nhưng có vẻ như nó không hoạt động. Đây là phần chính của mã của tôi:

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
Bạn đã thử các giá trị khác nhau của "né" chưa? Ví dụ như một cái gì đó như thế : position = position_dodge(width = 0.90). Xem thêm bài này .
COOLSerdash

Cảm ơn ví dụ của bạn. Tuy nhiên, tôi vừa thử các giá trị khác nhau về chiều rộng và nó vẫn không hoạt động.
ycc

2
xntruncgroupINDEX

Nó hoạt động ngay sau khi tôi thay đổi nhóm = "INDEX". Tôi nghĩ rằng tôi đã hiểu sai ý nghĩa của 'nhóm'. Cảm ơn @COOLSerdash
ycc

Câu trả lời:


12

Các nhóm nên = INDEX thay vì ntrunc trong 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")

Cốt truyện có vẻ tốt hơn bây giờ.

nhập mô tả hình ảnh ở đây


7
Điều này không làm việc cho tôi cho đến khi tôi sử dụnggeom_point(aes(shape=detectable),na.rm=TRUE, position=position_dodge(width=0.3))
Nova

Sẽ thật tuyệt khi lấy dữ liệu mẫu ở đây vì tôi không thể sao chép kết quả của bạn.
Léo Léopold Hertz 11/11/2016

1
@Nova tôi đoán là câu trả lời đã bị hỏng khi ggplot2chuyển từ phiên bản 0.9.Xsang 1.Xhoặc2.X
Richard Erickson
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.