阅读科学论文时,我经常会遇到点抖动而没有相互重叠的情节。我怀疑他们中的很多人都是用一个名为GraphPad Prism的程序来绘制的,但是肯定在R中必须有一种方法来做同样的事情。虽然它不是完美的(如下面的红点),但我认为它看起来比随机抖动好得多。抖动点时避免重叠
如果有人知道如何做到这一点,最好使用一些基本的功能,我会很高兴地知道。
阅读科学论文时,我经常会遇到点抖动而没有相互重叠的情节。我怀疑他们中的很多人都是用一个名为GraphPad Prism的程序来绘制的,但是肯定在R中必须有一种方法来做同样的事情。虽然它不是完美的(如下面的红点),但我认为它看起来比随机抖动好得多。抖动点时避免重叠
如果有人知道如何做到这一点,最好使用一些基本的功能,我会很高兴地知道。
下面是使用geom_dotplot()
一个GGPLOT2解决方案:
library(ggplot2)
set.seed(1234)
dat = data.frame(y=c(rpois(20, 4), rpois(20, 1), runif(20, 0, 20)),
category=rep(c("group_1", "group_2", "group_3"), c(20, 20, 20)))
dotplot_1 = ggplot(dat, aes(x=category, y=y)) +
geom_dotplot(aes(fill=category), binaxis="y",
stackdir="center", binwidth=0.8) +
stat_summary(fun.y=median, fun.ymin=median, fun.ymax=median,
geom="crossbar", width=0.7)
ggsave("dotplot_1.png", dotplot_1, width=6, height=4)
谢谢,这看起来不错!而且非常简单,甚至可以治愈我最初对ggplot2的困惑:)我会坚持一段时间思考,看看有没有人知道如何在格子或基础图形中做到这一点。 – Backlin 2012-08-10 08:04:32
实现了[beeswarm package](http://cran.r-project.org/web/packages/beeswarm/index.html)我上面提到的是使用标准的图形系统,所以我已经有两种很好的方法来实现它了。 – Backlin 2012-08-10 08:12:15
要调整数据点的大小,请向geom_dotplot()添加一个dotsize选项 – wint3rschlaefer 2015-08-25 12:15:21
这通常被称为* beeswarm情节*;在ggplot2的新版本中有一些功能可以做到这一点 – 2012-08-09 18:13:10
啊,很高兴为它命名。使它更容易找到更多。我不熟悉ggplot(总是首选格子),但我想我总是可以为它设计一个通用功能。 在CRAN中似乎有一个名为[beeswarm]的软件包(http://cran.r-project.org/web/packages/beeswarm/index.html),它也可以。 – Backlin 2012-08-09 19:06:55
ggplot的相关软件包:https://github.com/eclarke/ggbeeswarm – 2015-11-12 02:23:46