如何克服ggplot2中没有抖动或透明度的重叠点

时间:2010-03-23 18:14:48

标签: r ggplot2 overlap stripchart

我开始使用ggplot2。我有一些小的n(大约30左右)粒度数据,有很多重叠。抖动和alpha(透明度)都不合适。相反,带有堆栈和偏移的条形图最好,但我不知道如何在ggplot2中执行此操作。你知道吗?

要查看最终结果应该点击此graphic

这是几年前我用过的脚本。

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

3 个答案:

答案 0 :(得分:8)

您可以使用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 :(得分: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() 

答案 2 :(得分:4)

您想使用ggplot2中的geom_dotplot

你可能想要使用:

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

希望这会有所帮助。结果看起来很干净,这就是我认为你想要的。