gpt4 book ai didi

r - 如何在ggplot2中修改箱线图的晶须?

转载 作者:行者123 更新时间:2023-12-04 13:23:10 27 4
gpt4 key购买 nike

我将从MWE开始:

library(ggplot2)

p <- ggplot(mtcars, aes(factor(cyl), mpg, fill = factor(am)))
p + geom_boxplot()

我想修改晶须的颜色,例如将其设置为红色。我认为 geom_boxplot都不能直接做到这一点,所以这是我的解决方法:
library(Hmisc)

stat_sum_df <- function(fun, geom = "crossbar", ...) {
stat_summary(fun.data = fun, geom = geom, width = 0.4, ...)
}

p + stat_boxplot(geom = 'linerange', colour = "red", position = "dodge) +
stat_sum_df("median_hilow", conf.int = 0.5, position = "dodge")

线范围彼此堆叠。因此,接下来尝试:
p + stat_boxplot(geom = 'linerange', colour = "red", position = position_dodge(width = .5)) +
stat_sum_df("median_hilow",conf.int=0.5, position = position_dodge(width = .5))

看起来更好,但现在两个框之间有一个固定的空间(在第一个图和第三个图上比较cyl = 8)。由于我要将此代码用于不同数量的 am级别(当然,在我的实际数据中,这不是 am),我不预先知道盒子本身的宽度,所以我无法设置在不为框指定固定 width的情况下,将 linerange固定为 width

有没有办法根据框之间的间距有选择地修改 boxplot的晶须或调整 linerange元素之间的间距?

最佳答案

如何在彼此顶部绘制两个箱形图。一个带有红线,第二个位于顶部,根本没有任何须须。

p + geom_boxplot(color="red") + geom_boxplot(aes(ymin=..lower.., ymax=..upper..)) 

关于r - 如何在ggplot2中修改箱线图的晶须?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22068770/

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