r-facet-change-color-3

認知機能の変化を、LBD, AD, LBD+AD グループ毎に、LATE(+)とLATE(-)で分けて示したいと思い、下記のようにグラフを作製。

```{r fig.width=6}
filter(Data, complete.cases(LATE)) %>%
ggplot(aes(x=MMSEtoDeath, y=MMSETotal)) +
geom_line(aes(group = INDDID, color=LATE), size=0.2) +
geom_point(shape=21, aes(fill=LATE)) +
geom_smooth(method = "lm", se=F, aes(color=LATE)) +
scale_x_reverse() + # Reversed the x-axis so you can see "decline"
ylim(0,30) +
theme_bw() +
labs(x="Time from MMSE to Death (years)", y="MMSE (max=30)") +
scale_fill_jco() +
scale_color_jco() +
facet_wrap(~Cohort) +
theme(strip.background = element_blank())
```
r-facet-change-color-1

……統計学的には有意差が出ているんだけど、これだと違いがわかりにくい……

という事で、色々 aesthetics をチェンジしたときの備忘録。

普通に scale_fill_manual だけだと、facet 毎に色分けできない

最初、

scale_fill_jco()

の部分を,

scale_fill_manual()

に変更して、手動で色を当てはめてみたけれど、

これだと LATE(+) と LATE(-) 間でしか色が宛行われず、facet毎に色をチェンジできず……

r-facet-change-color-2

scale_fill_manual の前の一工夫

まずは、"LBD-LATE(-)", "LBD-LATE(+)", "AD-LATE(-)", "AD-LATE(+)", "LBDAD-LATE(-)", "LBDAD-LATE(+)" の6グループの列を作ってから、aes を

fill=Group

で指定。

Data1 <- Data %>%
mutate(Group = factor(NA, levels = c("LBD-LATE(-)", "LBD-LATE(+)", "AD-LATE(-)", "AD-LATE(+)", "LBDAD-LATE(-)", "LBDAD-LATE(+)"))

その後、

scale_fill_manual
scale_color_manual

で色を指定し、

facet_wrap(~Cohort)

でグループ毎にグラフを分けるとOK。

その他、見やすくするための aesthetics 色々

もっと違いをわかりやすくするため、

geom_smooth の SE を TRUE にして「近似曲線+SE」を出し、
geom_smooth(method = "gam", se=T, size=2, aes(color=Group))

個別データの透明度を

alpha=0.1

くらいにして、より近似曲線が映えるように設定した。

全コードは下記。

Data3 <- transform(Data1, Cohort=factor(Cohort, levels=c("LBD", "AD" , "LBD+AD" ))) filter(Data3,
complete.cases(LATE)&MMSEtoDeath<=15) %>%
ggplot(aes(x=MMSEtoDeath, y=MMSETotal, fill=Group)) +
geom_line(alpha=0.2, aes(group = INDDID, color=Group), size=0.5) +
geom_point(shape=21, size=1, alpha=0.1, aes(fill=Group, color=Group)) +
geom_smooth(method = "gam", se=T, size=2, aes(color=Group)) +
scale_x_reverse() + # Reversed the x-axis so you can see "decline"
ylim(0,30) +
theme_bw() +
labs(x="Time from MMSE to Death (years)", y="MMSE (max=30)") +
scale_fill_manual(values = c("#2980B9","#154360","#CB4335", "#641E16", "#F39C12","#7E5109")) +
scale_color_manual(values = c("#2980B9","#154360","#CB4335", "#641E16", "#F39C12","#7E5109")) +
facet_wrap(~Cohort) +
theme(strip.background = element_blank())

で、できあがった Figure はこちら。

r-facet-change-color-3

満足♪