How does one overcome overlapping points without jitter or transparency in ggplot2

强颜欢笑 提交于 2019-12-03 14:33:22

问题


I am starting to use ggplot2. I have some small n (about 30 or so) granular data with lots of overlap. Neither jitter nor alpha (transparency) are suitable. Instead a stripchart with stack and offset do it best but I do not know how to do it in ggplot2. Do you know?

To see what the end result should be click on this graphic.

Here is the script I used a few years ago.

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")

回答1:


# 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() 



回答2:


You can use 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




回答3:


You want to use geom_dotplot from ggplot2

you will probably want to use:

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

Hope this helps. The results will look really clean which is what I think you want.



来源:https://stackoverflow.com/questions/2502485/how-does-one-overcome-overlapping-points-without-jitter-or-transparency-in-ggplo

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!