2013-06-24 83 views
2

我在類似問題上看到了一些帖子,但找不到合適的解決方案。由於我的數據(下面的可重複示例)中的count重複,我需要在彼此的側面打印重疊點。人們正在使用position_dodge,但不知何故下面的例子不適合我。使用ggplot2時閃避不起作用

library('ggplot2') 
myData = data.frame(split = c(rep('a',10), rep('b',10)), count = c(20,27,21,20,24,23,21,25,22,22,35,37,32,32,32,32,31,33,32,31)) 
p = ggplot(myData, aes(split, count)) + geom_point(aes(colour=split), position=position_dodge(width=0.3)) 
p 

#Getting the warning 
ymax not defined: adjusting position using y instead 

回答

3

在這種情況下,你需要position_jitter()不閃避。

ggplot(myData, aes(split, count)) + geom_point(aes(colour=split), 
             position=position_jitter(width=0.3)) 

其他替代方案是使用geom_dotplot()

ggplot(myData, aes(split, count)) + 
    geom_dotplot(aes(fill=split),binaxis = "y",stackdir="center") 

enter image description here

+0

工作正常。謝謝。我還在'http:// docs.ggplot2.org/0.9.2.1/geom_dotplot.html'上找到了一些例子。 – learner

0

剛提的是,專門處理郵件,你可以在你的主ggplot審美改變這個「沒有定義YMAX」:

ggplot(myData, aes(split, count,ymax=max(count)*1.05)) 

,並會照顧它。乘以1.05只是爲了給註釋提供一些喘息空間,如果你想要的話。