閱讀科學論文時,我經常會遇到點抖動而沒有相互重疊的情節。我懷疑他們中的很多人都是用一個名爲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