2

我看到了一些关于类似问题的帖子,但找不到合适的解决方案。由于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
4

2 回答 2

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

在此处输入图像描述

于 2013-06-24T17:06:31.687 回答
0

只是提到要专门解决“ymax 未定义”消息,您可以将您的主要 ggplot 美学更改为:

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

这会照顾它。如果你想要的话,乘以 1.05 只是为了给注释一些喘息的空间。

于 2014-09-14T14:38:11.917 回答