use https://stats.idre.ucla.edu/stat/stata/notes/hsb2, clear
egen writegroup= cut(write), group(10) label
tab writegroup
sort female writegroup ses
contract female writegroup ses
rename _freq count
reshape wide count, i(writegroup female) j(ses)
gen c1 = count1 /*ses = 1 */
gen c12 = count1+count2
gen c123 = count3 + c12
gen c1_n = - c1
gen c12_n = - c12
gen c123_n = - c123
gen zero = 0
label values writegroup writegroup
label values female f1
twoway bar c123 writegroup if female==0 , horizontal || ///
bar c12 writegroup if female==0, horizontal || ///
bar c1 writegroup if female ==0, horizontal || ///
bar c123_n writegroup if female ==1 , horizontal || ///
bar c12_n writegroup if female ==1, horizontal || ///
bar c1_n writegroup if female ==1, horizontal || ///
sc writegroup zero , mlabel(writegroup) mlabsize(vsmall) ///
mlabcolor(black) msymbol(i) || , plotregion(style(none)) ysca(noline) ///
ylabel(none) xsca(noline titlegap(-1)) xlabel(0 -20 "20" -10 "10" ///
10(10) 20 , tlength(0) labsize(vsmall) grid gmin gmax) ytitle(group for writing scores) ///
legend(order(- "Female" - "Male" 4 1 5 2 6 3) col(2) lab(1 "high ses") ///
lab(2 "med ses") lab(3 "low ses") lab(4 "high ses") lab(5 "med ses") ///
lab(6 "low ses") lab(7 " ") colgap(40) symysize(.5) size(vsmall) bmargin(small) rowgap(*.5))
