gpt4 book ai didi

r - 如何在箱线图中为每个组绘制额外的统计数据?

转载 作者:行者123 更新时间:2023-12-02 00:06:07 24 4
gpt4 key购买 nike

我希望看到因素组合的箱线图和 I was told to use lattice为了那个原因。我试过了,它看起来像这样:

enter image description here但现在我还想为每个组添加一个方差分析统计数据。可能统计数据应该在每个面板中显示 p 值(在例如“澳大利亚”下方的白色部分)。如何在格子中做到这一点?请注意,我根本不坚持格子......

示例代码:

set.seed(123)
n <- 300
country <- sample(c("Europe", "Africa", "Asia", "Australia"), n, replace = TRUE)
type <- sample(c("city", "river", "village"), n, replace = TRUE)
month <- sample(c("may", "june", "july"), n, replace = TRUE)
x <- rnorm(n)
df <- data.frame(x, country, type, month)

bwplot(x ~ type|country+month, data = df, panel=function(...) {
panel.abline(h=0, col="green")
panel.bwplot(...)
})

为其中一组执行方差分析并返回到 extract p-value 的代码这是:

model <- aov(x ~ type, data = df[df$country == 'Africa' & df$month == 'may',])
p_value <- summary(model)[[1]][["Pr(>F)"]][2]

最佳答案

这是使用 ggplot2 的一种方法。首先,我们可以分别计算每个月/国家/地区组合的 p 值(我使用 data.table。您可以使用任何您喜欢的方式)。然后,我们添加 geom_text 并指定 pvalue 作为标签,并指定 x 和 y 坐标,其中文本应该位于每个面内。

require(data.table)
dt <- data.table(df)
pval <- dt[, list(pvalue = paste0("pval = ", sprintf("%.3f",
summary(aov(x ~ type))[[1]][["Pr(>F)"]][1]))),
by=list(country, month)]

ggplot(data = df, aes(x=type, y=x)) + geom_boxplot() +
geom_text(data = pval, aes(label=pvalue, x="river", y=2.5)) +
facet_grid(country ~ month) + theme_bw() +
theme(panel.margin=grid::unit(0,"lines"), # thanks to @DieterMenne
strip.background = element_rect(fill = NA),
panel.grid.major = element_line(colour=NA),
panel.grid.minor = element_line(colour=NA))

enter image description here

关于r - 如何在箱线图中为每个组绘制额外的统计数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18335209/

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