gpt4 book ai didi

r - 分面时的 ggplot geom_errorbar 宽度(并缩放 ="free")

转载 作者:行者123 更新时间:2023-12-04 02:07:54 26 4
gpt4 key购买 nike

我正在尝试使用 ggplot 和 geom_errorbar 创建一个分面图。但是,每个不同的方面可能具有截然不同的 x 范围,因此误差条的宽度看起来并不“好”。这是一个 MWE:

library(ggplot2)
test <- data.frame( group=rep(c(1,2,3),each=10), ymin=rnorm(30), ymax=rnorm(30))
test$x <- rnorm(30) * (1+(test$group==1)*20)
ggplot( test, aes(x=x, ymin=ymin, ymax=ymax) ) +
geom_errorbar(width=5) + facet_wrap( ~ group, scale="free_x" )
ggplot( test, aes(x=x, ymin=ymin, ymax=ymax) ) +
geom_errorbar(width=.2) + facet_wrap( ~ group, scale="free_x" )

在第一个图中,第 1 组的误差条看起来不错,但第 2 和第 3 组太宽了。在第二个图中,误差线对于第 1 组来说太小了。有没有简单的方法来解决这个问题?我想我可能只需要使用 width=0,但我想避免这种情况。

First Plot

Second Plot

最佳答案

此问题的解决方法是将新列添加到您的数据框中 wd包含每个级别的误差线的宽度。

test <- data.frame( group=rep(c(1,2,3),each=10), ymin=rnorm(30), ymax=rnorm(30))
test$x <- rnorm(30) * (1+(test$group==1)*20)
test$wd<-rep(c(10,0.5,0.5),each=10)

然后使用这个新列设置 width=geom_errorbar() .它应该设置在 aes() 内称呼。
ggplot( test, aes(x=x, ymin=ymin, ymax=ymax) ) +
geom_errorbar(aes(width=wd)) + facet_wrap( ~ group, scale="free_x" )

enter image description here

关于r - 分面时的 ggplot geom_errorbar 宽度(并缩放 ="free"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14506056/

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