- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我希望在多面 ggplot 图表中包含多个统计测试的结果。
我发现了很多关于如何在标题或注释中包含类似内容的优秀示例(如 this ),但是,我的兴趣在于将其作为文本注释包含在内,以便我可以显示许多结果对一个图形进行测试。
我已经能够使用标准文本注释来做到这一点,但是我想使用 polymath
/expressions
来展示我的结果,这样我就可以生成一个跟随在包 [ggstatsplot]
中实现的 APA 风格指南 1 , 请参见下面的示例:
我在下面包含了一个使用 ggplot2
中的 diamonds
数据的可重现示例的代码。我尝试过的一些事情包括:
bquote
和 expression
对象作为列存储在 wilcox_stats
对象中 — 然而 dplyr 似乎不喜欢它ggplot
中调用这一切——然而,试图排除 geom_text
想要打印的所有注释变得相当困惑如果您能提供任何帮助或指点,我们将不胜感激。
# LOAD REQUIRED PACKAGES
library(ggplot2)
library(tidyverse)
library(rstatix)
# CREATE SAMPLE DATA
sample_data <- diamonds %>%
select(cut, color, table) %>%
filter(color == c("E","J")) %>%
mutate(time = factor(case_when(
table %% 2 == 0 ~ "Before",
TRUE ~ "After"))) %>%
group_by(color, time) %>%
sample_n(100) %>%
ungroup() %>%
mutate(numeric_cut = case_when(
cut == "Ideal" ~ 1,
cut == "Premium" ~ 2,
cut == "Very Good" ~ 3,
cut == "Good" ~ 4,
cut == "Fair" ~ 5))
# STAT TESTS
wilcox_test <- sample_data %>%
group_by(color) %>%
wilcox_test(numeric_cut ~ time, paired = TRUE, detailed = TRUE) %>%
select(color, statistic, p, n1)
wilcox_es <- sample_data %>%
group_by(color) %>%
wilcox_effsize(numeric_cut ~ time, paired = TRUE, ci = TRUE) %>%
select(color, effsize, conf.low, conf.high)
## EXTRACT ELEMENTS OF STAT TESTS AND USE THEM TO CREATE ANNOTATION
wilcox_stats <- left_join(wilcox_test, wilcox_es) %>%
mutate(statistic = round(statistic, 1)) %>%
mutate(effsize = round(effsize, 2)) %>%
mutate(p = round(p, 3)) %>%
mutate(result = deparse(bquote(
V[Wilcoxon]==.(statistic)~ #this code does not work
italics(p)==.p~
hat(r) == .effsize~
"CI"["95%"]~
.conf.low~.conf.high~
n[pairs]==.n1)))
## PREPARE PLOT DATA
plot_data <- sample_data %>%
group_by(time, cut, color) %>%
tally() %>%
ungroup() %>%
group_by(color) %>%
mutate(total_n = sum(n)) %>%
mutate(percent = (n/total_n)*100) %>%
mutate(percent = round(percent, 1)) %>%
ungroup() %>%
left_join(wilcox_stats) %>%
mutate(result = case_when(
time == "Before" & cut == "Ideal" ~ "",
time == "After" & cut == "Ideal" ~ "",
time == "Before" & cut == "Premium" ~ "",
time == "After" & cut == "Premium" ~ "",
time == "Before" & cut == "Very Good" ~ "",
time == "After" & cut == "Very Good" ~ result,
time == "Before" & cut == "Good" ~ "",
time == "After" & cut == "Good" ~ "",
time == "Before" & cut == "Fair" ~ "",
time == "After" & cut == "Fair" ~ "")) %>%
mutate(time = factor(time, levels = c("Before", "After", ordered = TRUE)))
## PLOT RESULTS
plot <- plot_data %>%
ggplot() +
aes(x = cut, y = percent, fill = cut) +
geom_bar(stat = "identity") +
geom_text(aes(label = result, y = 30), size = 5, parse = TRUE) +
facet_grid(color ~ time)
下图显示了我希望创建的输出的要点...
最佳答案
我可能会使用粘贴创建表达式,(老实说,因为我发现包含变量更容易)。
我略微缩短了代码,也没有使用您的完整表达,但我认为它应该足以理解这个想法。
library(tidyverse)
sample_data <- diamonds %>%
select(cut, color, table) %>%
filter(color == c("E","J")) %>%
mutate(time = if_else(table %% 2 == 0, "Before", "After")) %>%
group_by(color, time) %>%
sample_n(100) %>%
ungroup() %>%
mutate(numeric_cut = as.numeric(cut))
wilcox_test <- sample_data %>%
group_by(color) %>%
rstatix::wilcox_test(numeric_cut ~ time, paired = TRUE, detailed = TRUE) %>%
select(color, statistic, p, n1)
wilcox_es <- sample_data %>%
group_by(color) %>%
rstatix::wilcox_effsize(numeric_cut ~ time, paired = TRUE, ci = TRUE) %>%
select(color, effsize, conf.low, conf.high)
这里是关键点
wilcox_stats <- left_join(wilcox_test, wilcox_es) %>%
mutate(statistic = round(statistic, 1),
effsize = round(effsize, 2),
p = round(p, 3),
label = paste('V[Wilcoxon]==', statistic, '~italic(p)==~', p))
#> Joining, by = "color"
plot_data <- sample_data %>%
count(time, cut, color) %>%
group_by(color) %>%
mutate(total_n = sum(n),
percent = round((n/total_n)*100,1)) %>%
ungroup() %>%
left_join(wilcox_stats) %>%
mutate(result = if_else(time == "After" & cut == "Very Good", label, ""))
#> Joining, by = "color"
plot_data %>%
ggplot() +
aes(x = cut, y = percent, fill = cut) +
geom_bar(stat = "identity") +
geom_text(aes(label = result, y = 30), parse = TRUE) +
facet_grid(color ~ time)
由 reprex package 创建于 2020-04-26 (v0.3.0)
关于r - 如何将统计测试的结果作为绘图数学表达式包含在 ggplot2 facet 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61437467/
我完全迷失在链接和 Solr 术语的世界中。我目前有一个日期字段,但如果可能的话,我想“进一步”面对它。 一个例子: 字段:日期 领域:语言 所以如果我运行这个查询: http://host:port
有没有办法通过属性的值为 null 或空字符串来过滤命中? 即,向我展示所有没有作者的对象 facetFilters=作者:空 facetFilters=作者:'' 或者将其包含在 OR 值列表中?
C++ 标准库中有一些标准基类方面,其默认行为依赖于经典的“C”语言环境 (std::locale::classic())。如果您的程序需要特定于文化的功能,那么切换到派生类方面(又名 byname
使用这个 SO solution我创建了一个包含两个“空”图的 facet,目的是与另一组 facet_wrap 图组合,如下所示。目的是为不同的单位测量设置两个 y 轴标签。如何使网格布局看起来像顶
我在 SOLR 索引中存储了大量文档。我想执行一个查询,返回指定字段的 Facet 计数,并返回每个 Facet 字段 的前 100 个文档。 例如。假设我的 SOLR 索引中存储了一堆书。 { na
我使用 Solr 4.7.0 有一个大约 500 万个文档的 Solr 索引,大小为 8GB。我需要在 Solr 中分组,但发现它太慢了。下面是组配置: group=on group.facet=on
Elasticsearch Histogramfacet似乎不支持 all_terms = true(即:即使 count=0 也返回 facetvalue/bucket) 这是正确的吗? 最佳答案
有$facet自 3.4 以来 mongo 中的聚合阶段 -这个很酷。它允许在同一个输入文档集的单个阶段内处理多个聚合管道。 但它不允许在另一个 $facet 中使用一个 $facet。引用:“任何其
我在 solr 中使用 Stats 组件来获取分面统计数据,效果很好,现在我有兴趣对我的日期字段执行相同的操作。但是在统计模块中使用 facet.date 字段似乎不起作用,有没有办法让它工作? 我的
我正在尝试将多个图与方面对齐。我的问题有点小但很烦人:我可以制作一个绘图,以便绘图区域对齐并且刻面本身对齐,但是刻面条的宽度并不完全相同。如果刻面的标签长度不同,则刻面条的大小将调整为使文本适合刻
我在 R 中有一个数据框,我想在分面 ggplot 条形图中绘制它。 我在 ggplot 中使用此代码: ggplot(data_long, aes(x = partei, y = wert, fil
我在 Eclipse Java EE IDE 中有一个面向 Web 开发人员的 Maven 项目。但是当我启用 JPA 方面时,我无法选择 JPA(没有 JPA 选项)。我是否忘记包含一些依赖项? 我
我使用 ggplot 绘制了一个分面图这是情节 我的问题是,刻面(标签)按字母顺序排序(例如:E1、E10、E11、E13、E2、E3、I1、I10、I2)但我需要它们是像 E1、I1、E2 这样的自
我正在尝试在 Intellij IDEA 14 中运行播放框架应用程序。 我安装了 Scala 插件并需要所有 jar 文件。 但是在 Project-Structure -> Facet 中,我在添
我正在使用命令 qplot(factor(ww), WeeklyYield, geom = "bar", fill = I("grey50"))+facet_wrap(~model+name) 为 m
最近我发现了 python 可视化库“Facets”,想知道我是否可以离线生成 html 输出。 我正在使用 chrome 浏览器和 webcomponents-lite.js不需要。 另外,我在我的
我正在测试可用在 https://www.primefaces.org/showcase/ui/overlay/dialog/loginDemo.xhtml 的 PrimeFaces 示例.我在 Ec
我想在solr响应的过滤查询(fq)中传递逗号分隔的值,当前,当我想传递多个类别时,我使用OR运算符。 像这样fq = categoryId:3 OR categoryId:55 OR categor
我有以下 Elasticsearch 映射 { "mappings": { "hotel": { 'properties': {"name": {
我正在尝试从 solr 获取字段的唯一值。我已经使用facet来获取字段值。我的方面查询参数看起来像 - SolrQuery query = new SolrQuery();
我是一名优秀的程序员,十分优秀!