認知機能の変化を、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())
```
……統計学的には有意差が出ているんだけど、これだと違いがわかりにくい……
という事で、色々 aesthetics をチェンジしたときの備忘録。
普通に scale_fill_manual だけだと、facet 毎に色分けできない
最初、
scale_fill_jco()
の部分を,
scale_fill_manual()
に変更して、手動で色を当てはめてみたけれど、
これだと LATE(+) と LATE(-) 間でしか色が宛行われず、facet毎に色をチェンジできず……
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 はこちら。
満足♪