使用ggplot2时道奇不工作

时间:2013-06-24 17:04:50

标签: r plot ggplot2

我在类似的问题上看了几篇帖子,但找不到合适的解决方案。由于我的数据中的count(下面的可重复示例)有重复,我需要在彼此的侧面打印重叠点。人们正在使用position_dodge,但不知何故,以下示例对我不起作用。

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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

只是提到要专门解决'ymax not defined'消息,你可以改变你的主要ggplot审美:

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

这会照顾它。如果你想要的话,乘以1.05就可以为注释提供一些喘息空间。