gpt4 book ai didi

r - 如何创建带有大量连续x变量的geom_boxplot

转载 作者:行者123 更新时间:2023-12-03 14:44:30 25 4
gpt4 key购买 nike

我有一个数据框,其中包含多个类别的x轴数字仓和连续y轴数据。最初,我通过使x轴箱成为“因素”并创建融化数据的箱图来创建箱图。可复制的数据:

x <- seq(1,10,by=1)
y1 <- rnorm(10, mean=3)
y2 <- rnorm(10, mean=10)
y3<- rnorm(10, mean=1)
y4<- rnorm(10, mean=8)
y5<- rnorm(10, mean=12)
df <- data.frame(x,y1,y2,y3,y4,y5)
df.m <- melt(df, id="x")


我的代码将创建x轴数据作为一个因素:


df.m $ x <-as.factor(df.m $ x)


我的ggplot:

ggplot(df.m, aes(x=x, y=value))+
geom_boxplot(notch=FALSE, outlier.shape=NA, fill="red", alpha=0.1)+
theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))


结果图:


问题是我不能使用x轴数字间距,因为x轴被归类为具有相等间距的因子。我希望能够使用scale_x_continuous之类的方法来将轴的中断和间距控制为2的间隔,而不是每1的箱线图,但是当我尝试使用x轴“ as.numeric”绘制数据时”,我只是获得所有数据的一个箱形图:



对于获得这种连续的箱形图曲线(第一张图片)同时仍能够控制x轴的数值属性的方法,有何建议?谢谢!

最佳答案

这是使用您发布在Google上的原始数据的一种方法-IMO其实更有用。

ggplot(df, aes(x=CH, y=value,group=CH))+
geom_boxplot(notch=FALSE, outlier.shape=NA, fill="red", alpha=0.2)+
scale_x_log10()




因此,正如@BenBolker在删除答案(??)之前所说的那样,您应该将x变量( CH)保留为数字,并在调用中将 group=CH设置为 aes(...)

但是,对于您的真实数据,还有另一个问题。您的 CH或多或少是对数间距的,因此<1的点数与1-10之间的点数差不多,依此类推。 ggplot希望使这些框都具有相同的大小,因此使用线性x轴框的宽度小于线宽,并且您根本看不到框。将x轴更改为对数刻度可以或多或少地解决此问题。

关于r - 如何创建带有大量连续x变量的geom_boxplot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27050802/

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