The graph looks fairly silly for your example data, but I think the principle is about right.
Code:
clear input id days SCIM group 1 34 85.9 2 1 90 94.9 2 1 146 95.4 2 2 33 99.2 2 2 97 100 2 3 27 90.4 1 3 76 100 1 3 111 100 1 4 38 62.7 2 4 84 86.9 2 4 165 96.7 2 5 20 75.9 1 5 98 97.8 1 5 112 98.3 1 end generate months = round(days/30, 0.5) egen mean = mean(SCIM), by(group months) egen SD = sd(SCIM), by(group months) gen upper = mean + SD gen lower = mean - SD separate mean, by(group) veryshortlabel local mv `r(varlist)' egen gtag = tag(group months) sort id months twoway connected SCIM months if group == 1, lc(red) ms(Oh) mc(red) lw(thin) c(L) /// || connected SCIM months if group == 2, lc(blue) mc(blue) ms(+) lw(thin) c(L) /// || line `mv' months if gtag, lc(red blue) lw(thick ..) xla(1/5) sort /// || rcap lower upper months if gtag & group == 1, lc(red) /// || rcap lower upper months if gtag & group == 2, lc(blue) /// legend(order(1 "group 1" 2 "group 2" 3 "mean group 1" 4 "mean group 2")) sort name(G1, replace)
Comment