r - 多面 ggplot 中的 ggstatsplot 字幕输出
问题描述
我正在尝试将grouped_ggbetweenstats()的输出添加到多面 ggplot。这个类似的问题在这里说这是不可能的,但我觉得响应者不太理解这个问题。
group_ggbetweenstats()有一个选项output = "subtitle",它不会产生一个图,而是产生一个表示统计测试输出的字符串,该输出将由grDevices::mtext()解释。然后可以将此文本作为标签提供给您正在分面的因素。谜题中唯一似乎缺失的部分是 grDevices 的评估。
下面的例子:
library(ggplot2)
library(ggstatsplot)
mtcars1 <- mtcars
statistics <- grouped_ggbetweenstats(data = mtcars1, x = cyl, y = mpg, grouping.var = am, output = "subtitle")
mtcars1$am <- factor(mtcars1$am, levels = c(0,1), labels = statistics)
mtcars1 %>%
ggplot(aes(x = cyl, y = mpg)) +
geom_jitter() +
facet_wrap(vars(am), ncol =1, strip.position = "top")
这给出了:
而我们想要的是看起来像这样的东西(除了刻面):
所以问题是:
- 是否有可能获得构面标签来解释 mtext() 指令或
- 是否可以在绘图环境之外解释 mtext() 指令,然后将此解释的文本作为标签传递给 facet_wrap/grid或
- 是否可以包含与标签分开的方面的副标题(如stat_compare_mean所做的)或
- 其他...
解决方案
您只需要在构面标签中解析这些表达式,就应该这样做:
set.seed(123)
library(ggplot2)
library(ggstatsplot)
# data
mtcars1 <- mtcars
statistics <- grouped_ggbetweenstats(data = mtcars1, x = cyl, y = mpg, grouping.var = am, output = "subtitle")
mtcars1$am <- factor(mtcars1$am, levels = c(0,1), labels = statistics)
# plot
mtcars1 %>%
ggplot(aes(x = cyl, y = mpg)) +
geom_jitter() +
facet_wrap(vars(am), ncol =1, strip.position = "top", labeller = ggplot2::label_parsed)
由reprex 包(v0.3.0)于 2020-07-18 创建
推荐阅读
- angular - 从 api ionic angular 4 提取数据和解析
- cakephp - CakePHP 3:缺少翻译字符串的翻译数据顺序
- java - 如何防止HPACK解压失败?
- swift - 在 if else 错误中返回值
- haskell - 你将如何在 Haskell 中声明这些函数的类型?
- android - 势不可挡的服务不工作
- java - Spring security:身份验证管理器和全局安全配置,带有来自 xml config 的 Java 配置
- ios - 在 iOS 中为特定时间的视频添加文本
- php - 如何在 symfony 中运行后台进程
- ios - 从日期选择器获取不同时区的日期