【问题标题】:jitter according to density根据密度抖动
【发布时间】:2020-07-28 16:39:05
【问题描述】:

我想用 ggplot 创建小提琴和点图的组合。这个想法是在必要时将点向左和向右移动,以避免重叠。

我知道 geom_dotplot 会这样做(左示例),但它也会将 y 轴上的点分组,这是我不想要的(给人的印象是 y 不连续)。 geom_jitter 也有效,但它会抖动值,而与相应的密度无关。

所以我理想的情节是 geom_dotplot 形式的 x 位置,但具有真正的 y 位置。有没有办法用 ggplot 来实现?

library(ggplot2)
data <- data.frame(values=c(rnorm(100, mean = 0),rnorm(100, mean = 1)), typ= c(rep("A",100),rep("B",100)))

ggplot(data, aes(x=typ,y=values))+
  geom_violin()+
  geom_dotplot(binaxis="y",stackdir='center',binwidth = 0.1)

ggplot(data, aes(x=typ,y=values))+
  geom_violin()+
  geom_jitter(width = 0.2)

提前致谢。

【问题讨论】:

标签: r ggplot2


【解决方案1】:

根据评论,您可以使用 ggbeeswarm。在这种情况下,我会使用geom_quasirandom

library(ggplot2)
library(ggbeeswarm)

data <- data.frame(values=c(rnorm(100, mean = 0),rnorm(100, mean = 1)), typ= c(rep("A",100),rep("B",100)))

ggplot(data, aes(x=typ,y=values))+
  geom_violin()+
  geom_quasirandom()

reprex package (v0.3.0) 于 2020 年 7 月 28 日创建

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-18
    • 2020-10-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多