gpt4 book ai didi

r - 如何在空间上将不同系列的地毯图分开

转载 作者:行者123 更新时间:2023-12-04 10:53:54 24 4
gpt4 key购买 nike

我正在尝试以图形方式评估数据集的分布(双峰与单峰),其中每个数据集的数据点数量可能差异很大。我的问题是使用像地毯图这样的东西来指示数据点的数量,但要避免具有许多数据点的系列压倒只有几个点的系列的问题。

目前我在 ggplot2 工作, 结合 geom_densitygeom_rug像这样:

# Set up data: 1000 bimodal "b" points; 20 unimodal "a" points
set.seed(0); require(ggplot2)
x <- c(rnorm(500, mean=10, sd=1), rnorm(500, mean=5, sd=1), rnorm(20, mean=7, sd=1))
l <- c(rep("b", 1000), rep("a", 20))
d <- data.frame(x=x, l=l)

ggplot(d, aes(x=x, colour=l)) + geom_density() + geom_rug()

enter image description here

这几乎可以满足我的要求 - 但“a”点被“b”点淹没。

我已经使用 geom_point 破解了一个解决方案而不是 geom_rug :
d$ypos <- NA
d$ypos[d$l=="b"] <- 0
d$ypos[d$l=="a"] <- 0.01

ggplot() +
geom_density(data=d, aes(x=x, colour=l)) +
geom_point(data=d, aes(x=x, y=ypos, colour=l), alpha=0.5)

enter image description here

然而,这并不令人满意,因为必须手动调整 y 位置。是否有更自动的方法来从不同系列中分离地毯图,例如使用位置调整?

最佳答案

一种方法是使用两个 geom_rug()电话 - 一个给 b , 其他为 a .那么对于一个 geom_rug()套装 sides="t"将它们绘制在顶部。

ggplot(d, aes(x=x, colour=l)) + geom_density() + 
geom_rug(data=subset(d,l=="b"),aes(x=x)) +
geom_rug(data=subset(d,l=="a"),aes(x=x),sides="t")

enter image description here

关于r - 如何在空间上将不同系列的地毯图分开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16402560/

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