gpt4 book ai didi

r - ggplot2:如何将点与 fiddle 图分组?

转载 作者:行者123 更新时间:2023-12-02 05:31:26 24 4
gpt4 key购买 nike

我想绘制 fiddle 图,其中 x 轴是 exon 但我想对图进行分组。如果它只是 fiddle ,那么这是有效的,但是当我由于某种原因添加抖动时,它没有响应正确的 aes 并且正在自行绘制?这是一个可重现的代码,其中包含错误的屏幕截图。谢谢!

set.seed(1)
df <- data.frame(
exons = c(rep("e1", 200), rep("e2", 200)),
values = rnorm(400, 200, 40),
group = c(
rep("g1", 75), rep("g2", 75), rep("g3", 50),
rep("g1", 75), rep("g2", 75), rep("g3", 50)
)
)

ggplot(df, aes(y = values, x = exons, fill = group)) +
geom_violin() +
geom_jitter(shape = 16, position = position_jitter(0.07))

因此,如果该图有效,则应该在每个外显子的每个组内绘制点,但这里显然不是。

enter image description here

最佳答案

您可能需要 position_dodge()position_jitterdodge()

library(ggplot2)
ggplot(df, aes(y = values, x = exons, fill = group)) +
geom_violin(position = position_dodge(width = 0.9)) +
geom_point(position = position_jitterdodge(seed = 1, dodge.width = 0.9))

另一个值得一提的选项是 ggbeeswarm 中的 geom_quasirandom() 函数。包

library(ggbeeswarm)
ggplot(df, aes(y = values, x = exons, fill = group)) +
geom_violin(position = position_dodge(width = 0.9)) +
geom_quasirandom(dodge.width = 0.9, varwidth = TRUE)

reprex package于2019年8月10日创建(v0.3.0)

关于r - ggplot2:如何将点与 fiddle 图分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57445054/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com