2010-03-23 19 views
6

Tôi bắt đầu sử dụng ggplot2. Tôi có một số dữ liệu chi tiết n nhỏ (khoảng 30 hoặc hơn) với nhiều chồng chéo. Cả jitter lẫn alpha (trong suốt) đều không phù hợp. Thay vào đó, một dải vải với ngăn xếp và bù đắp làm tốt nhất nhưng tôi không biết làm thế nào để làm điều đó trong ggplot2. Bạn có biết?Làm cách nào để khắc phục điểm trùng lặp mà không có jitter hoặc độ trong suốt trong ggplot2

Để xem kết quả cuối cùng nên được nhấp vào số graphic này.

Đây là tập lệnh tôi đã sử dụng cách đây vài năm.

stripchart(SystData$DayTo1Syst~SystData$strain,vertical=TRUE,method="stack",pch=19,offset=.3,xlab="Strain",main="Rapidity of Systemic Disease Onset",ylab="Days post inoculation") 
+0

Đó có phải chỉ là jitter trên trục x không? –

+0

Có. Jitter sẽ chỉ là trên trục x nhưng tôi không thực sự muốn jitter. Tôi thích một tiến trình có trật tự từ trái sang phải. – Farrel

+0

Một ô hướng dương có thể hoạt động thực sự tốt ở đây, mặc dù tôi không biết cách đơn giản là tạo chúng bằng ggplot2. –

Trả lời

6
# your data 
df <- data.frame(gp = rep(LETTERS[1:5], each =8), y = sample(1:4,40,replace=TRUE)) 
# calculate offsets 
df <- ddply(df, .(y, gp), transform, offset = (1:length(gp)-1)/20) 
qplot(gp, y, data=df) + stat_identity(aes(as.numeric(gp)+offset)) + theme_bw() 
8

Bạn có thể sử dụng position_dodge.

df <- data.frame(gp = rep(LETTERS[1:5], each =8), 
       y = sample(1:4,40,replace=TRUE)) 
qplot(gp,y,data=df,order=y,position=position_dodge(width=0.5)) 

alt text http://img100.imageshack.us/img100/8760/dodgel.png

+1

Nếu bạn nhìn kỹ, đây không phải là những gì Farrel muốn: vị trí né tránh lan truyền tất cả các điểm, trong khi con số ví dụ chỉ lan truyền các điểm được ghi lại – xiechao

4

Bạn muốn sử dụng geom_dotplot từ ggplot2

có thể bạn sẽ muốn sử dụng:

ggplot(insert your arguments here) + geom_dotplot(binaxis = "y", stackdir = "center") 

Hope this helps. Kết quả sẽ trông thực sự sạch sẽ đó là những gì tôi nghĩ rằng bạn muốn.

Các vấn đề liên quan