Правильное расположение нескольких значимых меток в ggplot - PullRequest
0 голосов
/ 20 марта 2020

Я хочу представить две группы с их развитием с течением времени в блокпосте и добавить метки значимости для каждой группы (внутригрупповые сравнения). У меня есть рабочий пример использования ggpubr::stat_compare_means, но я не могу правильно расположить два geom.

Я попытался position = position_dodge(width=0.5) и несколько других позиционных элементов, но по некоторым причинам они вообще не будут двигаться. В моем желаемом выводе каждая метка должна быть смещена по горизонтали так, чтобы она располагалась над каждым блоком групп, и была отрегулирована по вертикали, чтобы не перекрываться.

Пример кода с использованием diamonds:

df <- filter(diamonds, color == "J" | color == "E")
ggplot(data = df, aes(x = cut, y = price, fill = color)) +
  geom_boxplot() +
  stat_compare_means(method = "t.test",data = filter(df, color == "J"), comparisons = list(c("Fair","Good"),c("Fair","Very Good"),c("Fair","Premium"))) +
  stat_compare_means(method = "t.test",data = filter(df, color == "E"), comparisons = list(c("Fair","Good"),c("Fair","Very Good"),c("Fair","Premium")))

Example image

1 Ответ

1 голос
/ 20 марта 2020

Хотя я действительно не думаю, что это хорошая идея для визуализации - вот решение. Если вы используете ggpubr, оставайтесь в синтаксисе ggpubr. И использовать огранку для подгруппы.

PS Попробуйте вместо таблицы.


library(tidyverse)
library(ggpubr)

mydf <- filter(diamonds, color == "J" | color == "E")

comparisons <- list(c("Fair", "Good"), c("Fair", "Very Good"), c("Fair", "Premium"))

ggboxplot(mydf, x = "cut", y = "price", facet.by = "color") +
  stat_compare_means(
    method = "t.test", ref.group = "Fair", label = "p.format",
    comparisons = comparisons
  )

Создано в 2020-03-20 пакетом Представить (v0.3.0)

...