ggpubr: изменить размер шрифта stat_compare_means p-значения Крускала-Уоллиса

Как я могу изменить размер шрифта stat_compare_means на участке ниже? Т.е. изменить "Крускал-Уоллис, p = 1.5e-09" и другие размеры шрифта p-значения? Я хотел бы использовать меньший размер шрифта, чем по умолчанию...

Следуя примеру данных...

library(ggpubr)
data("ToothGrowth")
compare_means(len ~ dose,  data = ToothGrowth)

# Visualize: Specify the comparisons I want
my_comparisons <- list( c("0.5", "1"), c("1", "2"), c("0.5", "2") )

# Plotting
ggboxplot(ToothGrowth, x = "dose", y = "len",
          color = "dose", palette = "jco")+ 
stat_compare_means(comparisons = my_comparisons)+ # Add pairwise comparisons p-value
stat_compare_means(label.y = 50)     # Add global p-value

Участок:

1 ответ

Решение
your_font_size <- 2

p <- ggboxplot(ToothGrowth, x = "dose", y = "len", color = "dose", palette = "jco") + 
 stat_compare_means(comparisons = my_comparisons) + 
 stat_compare_means(label.y = 50, size = your_font_size)

p$layers[[2]]$aes_params$textsize <- your_font_size
p

Решение немного обильно, но работает. Я не мог найти другой способ переписать textsize параметр geom_signif слой, который создается после первого вызова stat_compare_means,

Параметр хранится здесь: p$layers[[2]]$aes_params$textsize и может быть изменен вручную.

Если вам нужна эта манипуляция для другого графика, в котором порядок слоев может отличаться от этого примера, вы можете использовать which_layer функция от gginnards Пакет для обнаружения этого слоя (или любого другого), используя следующий код.

Спасибо KGee за указание на то, что which_layer функция была перемещена из ggpmisc Пакет от версии 0.3.0.

library(gginnards)
which_layers(p, "GeomSignif")
## [1] 2

Изменить textsize аргумент, как показано выше.

p$layers[[which_layers(p, "GeomSignif")]]$aes_params$textsize <- your_font_size
Другие вопросы по тегам