ggplot2 geom_jitterdodge points и с наложенными уклоненными коробочными диаграммами: я хочу сохранить цвет в точках, но заставить коробочные диаграммы быть черными - PullRequest
0 голосов
/ 03 ноября 2019

Используя ggplot2, я хочу geom_jitterdodge рой точек с наложенными уклоненными коробками. Хитрость заключается в том, что я хочу, чтобы коробочки были черными, а не цветными, как точки. Точечный график выглядит следующим образом:

enter image description here

Достаточно легко получить боксы на месте:

enter image description here

Код для этого выглядит следующим образом:




D_cohort1 %>%
    filter(!is.na(pssa_ela_code)) %>%
    ggplot(aes(x=timepoint,
               y=dibels_lnf,
               color=pssa_ela_code)) +
    geom_point(alpha=1/6, size=2,  width=1/3, height=0,
                  position=position_jitterdodge()) +
    geom_boxplot(fill=NA, outlier.shape=NA,
                 position=position_dodge2(padding=.3)) +
    facet_grid(rows=vars(school_type)) +
    guides(colour = guide_legend(override.aes = list(alpha=1))) +
    labs(title="Figure A.1: DIBELS LNF Scores at each Timepoint") +
    theme_cowplot() +
    theme(plot.background=element_rect(fill="aliceblue"),
          panel.border=element_rect(color="black", fill=NA),
          legend.position = c(.85,.87),
          legend.text = element_text(size = rel(.7)))

Для наглядности я хочу, чтобы линии на блокпосте были черными, но я не совсем понимаю, как туда добраться,Самое близкое, что я получил, - это (как и раньше, но для вызова geom_boxplot ():


D_cohort1 %>%
    filter(!is.na(pssa_ela_code)) %>%
    ggplot(aes(x=timepoint,
               y=dibels_lnf,
               color=pssa_ela_code)) +
    geom_point(alpha=1/6, size=2,  width=1/3, height=0,
                  position=position_jitterdodge()) +
    geom_boxplot(aes(color=NULL, group=fct_cross(timepoint, pssa_ela_code)),
                 fill=NA, outlier.shape=NA,
                 position=position_dodge2(padding=.3)) +
    facet_grid(rows=vars(school_type)) +
    guides(colour = guide_legend(override.aes = list(alpha=1))) +
    labs(title="Figure A.1: DIBELS LNF Scores at each Timepoint") +
    theme_cowplot() +
    theme(plot.background=element_rect(fill="aliceblue"),
          panel.border=element_rect(color="black", fill=NA),
          legend.position = c(.85,.87),
          legend.text = element_text(size = rel(.7)))

. Получает нужный мне цветовой эффект, но неправильно размещает поля. Показано здесь:

enter image description here

Как мне добиться желаемого эффекта: правильно расположенные черные поля на цветных точках?

1 Ответ

0 голосов
/ 03 ноября 2019

Хорошо. Я спал на нем и смог придумать решение сегодня утром. Эффект, который я хочу, показан ниже. Для этого используется код:


D_cohort1 %>%
    filter(!is.na(pssa_ela_code)) %>%
    ggplot(aes(x=timepoint,
               y=dibels_lnf,
               color=pssa_ela_code)) +
    geom_point(alpha=1/6, size=2,  width=1/3, height=0,
                  position=position_jitterdodge()) +
    geom_boxplot(aes(color=NULL, fill=pssa_ela_code),
                 outlier.shape=NA, alpha=0,
                 position=position_dodge2(padding=.3)) +
    facet_grid(rows=vars(school_type)) +
    guides(colour = guide_legend(override.aes = list(alpha=1))) +
    labs(title="Figure A.1: DIBELS LNF Scores at each Timepoint") +
    theme_cowplot() +
    theme(plot.background=element_rect(fill="aliceblue"),
          panel.border=element_rect(color="black", fill=NA),
          legend.position = c(.85,.87),
          legend.text = element_text(size = rel(.7)))

Он такой же, как и раньше, но для вызова geom_boxplot (). Потребовалось преодоление эстетики цвета и настройки заливки. Тогда альфа = 0 делает заливку полностью прозрачной, что я и хочу.

enter image description here

...