This page contains Stata code and output, equivalent to the examples in the paper. In all cases, the data are random samples from the freely-available NHANES dataset, and the variables used are;
To run the code, the following packages must first be installed;
ssc install vioplot
ssc install stripplot
ssc install spineplot
Following this, cut-and-paste the code for each figure into an R session.
insheet using http://faculty.washington.edu/kenrice/heartgraphs/nhanessmall.csv, clear
label variable bpxsar "Systolic Blood Pressure (mmHg)"
stripplot bpxsar
stripplot bpxsar, stack center
insheet using http://faculty.washington.edu/kenrice/heartgraphs/nhanesmedium.csv, clear
label variable bpxsar "Systolic Blood Pressure (mmHg)"
stripplot bpxsar
stripplot bpxsar, stack center
stripplot bpxsar, width(1) stack center
insheet using http://faculty.washington.edu/kenrice/heartgraphs/nhaneslarge.csv, clear
label variable bpxsar "Systolic Blood Pressure (mmHg)"
vioplot bpxsar, horizontal
histogram bpxsar
insheet using http://faculty.washington.edu/kenrice/heartgraphs/nhaneslarge.csv, clear
generate normotens = bpxsar <= 140
label define normotensl 1 "<= 140 mmHg" 0 "> 140 mmHg"
label values normotens normotensl
generate sample = 1
graph hbar (percent) sample, over(normotens) asyvars stack
insheet using http://faculty.washington.edu/kenrice/heartgraphs/nhaneslarge.csv, clear
generate normotens = bpxsar <= 140
collapse (mean) est=normotens (sebinomial) stderr=normotens
generate loCI = est - 1.96*stderr
generate hiCI = est + 1.96*stderr
generate x = 1
label variable x "Estimate"
label variable loCI "95% Conf Int"
label variable hiCI "95% Conf Int"
twoway (scatter x est) (rspike loCI hiCI x, horizontal), ///
xscale( r(0 1) ) xtick( 0(0.2)1 ) xlabel( 0(0.2)1) yscale(off)
insheet using http://faculty.washington.edu/kenrice/heartgraphs/nhaneslarge.csv, clear
generate sample = 1
graph hbar (percent) sample, over(race_ethc) asyvars stack
insheet using http://faculty.washington.edu/kenrice/heartgraphs/nhaneslarge.csv, clear
generate x=1
collapse (count) x, by(race_ethc)
generate est = x/1000
generate stderr = sqrt(est*(1-est)/1000)
generate loCI = est - 1.96*stderr
generate hiCI = est + 1.96*stderr
generate study = _n
label variable study "Estimate"
label variable loCI "95% Conf Int"
label variable hiCI "95% Conf Int"
twoway (scatter study est) (rspike loCI hiCI study, horizontal), ///
xscale( r(0 1) ) xtick( 0(0.2)1 ) xlabel( 0(0.2)1) ///
ylabel( 1 "Black non-Hispanic" 2 "Hispanic" 3 "Other" 4 "White non-Hispanic", angle(0)) ///
ytitle("")
insheet using http://faculty.washington.edu/kenrice/heartgraphs/nhaneslarge.csv, clear
generate normotens = bpxsar <= 140
label define normotensl 1 "<= 140 mmHg" 0 "> 140 mmHg"
label values normotens normotensl
generate x = 1
graph pie x, over(normotens)
insheet using http://faculty.washington.edu/kenrice/heartgraphs/nhaneslarge.csv, clear
generate x = 1
graph pie x, over(race_ethc)
insheet using http://faculty.washington.edu/kenrice/heartgraphs/nhanessmall.csv, clear
label variable dr1tfola "Folate intake (ug/day)"
label define sexl 1 "Male" 2 "Female"
label values riagendr sexl
stripplot dr1tfola, vertical over(riagendr)
insheet using http://faculty.washington.edu/kenrice/heartgraphs/nhanesmedium.csv, clear
label variable dr1tfola "Folate intake (ug/day)"
label define sexl 1 "Male" 2 "Female"
label values riagendr sexl
stripplot dr1tfola, width(20) vertical stack center over(riagendr)