program define z_rplt *! version 1.1.1 02Feb96 version 4.0 local varlist "req ex min(2)" local options "COLumn(string) PEN(string) Symbol(string) T1title(string) *" parse "`*'" z_rvrfy S_1 S_2 S_3 tempname ix iy Col zcx `varlist' local pp "$S_3" if `pp' > 17 { error 134 } local vlab "$S_4" local ylab "$S_5" matrix `iy' = S_0 scalar `Col' = ("`column'" != "") if `Col' { zcx `column' local qq "$S_3" local hlab "$S_4" local xlab "$S_5" matrix `ix' = S_0 } else { local qq = `pp' - 1 local hlab "`vlab'" local j = int(log10(`pp')) + 2 local xlab = substr("`ylab'", 1, length("`ylab'")-`j') local ylab = substr("`ylab'", 3, .) matrix `ix' = `iy' } local ylab "`ylab',`pp'" matrix drop S_0 preserve global S_FN "" drop _all if "`symbol'" != "" { local symbol = substr("`symbol'", 1, 1) } else { local symbol "d" } local PN1 2 local PN2 3 local PN3 1 if "`pen'" != "" { local i = 0 while `i' < 3 { local i = `i' + 1 local np = substr("`pen'", `i', 1) if "`np'" != "" { local PN`i' "`np'" } } } tempname dd scalar `dd' = 0.4/10 local np = `pp'*`qq' if !`Col' { local np = `np'/2 } local nn = 21*`np' qui set obs `nn' qui gen x = (mod(_n, 21)-10) * scalar(`dd') qui gen byte y = . local nn = 0 local NN = 0 local j = 1 qui while `j' <= `qq' { local i = cond(`Col', 0, `j') while `i' < `pp' { local i = `i' + 1 local nn = `NN' + 1 local NN = `nn' + 20 replace x = `j' + x in `nn'/`NN' replace y = `i' in `nn'/`NN' } local j = `j' + 1 } qui gen byte yy = y if int(x)==x tempname Vlab Hlab lab def `Vlab' `vlab' lab val y `Vlab' lab def `Hlab' `hlab' lab val x `Hlab' lab var x " " local j = _N + 3*`np' local nn = _N qui set obs `j' qui gen byte z = . local i = !`Col' qui while `i' < `pp' { local i1 = `i' local i = `i' + 1 gen byte y`i1' = . local Yv "`Yv' y`i1'" local Cv "`Cv'L" local Sv "`Sv'i" local Pv "`Pv'`PN2'" tempname L1 L2 local j = cond(`Col', `qq', `i'-1) while `j' > 0 { scalar `L1' = S_2[`iy'[`i',1],`ix'[`j',1]] scalar `L2' = S_2[`ix'[`j',1],`iy'[`i',1]] local nn = `nn' + 1 replace x = `j' + 0.4*min(`L1', `L2') in `nn' replace y`i1' = `i' in `nn' local nn = `nn' + 1 replace x = `j' + 0.4*max(`L1', `L2') in `nn' replace y`i1' = `i' in `nn' local nn = `nn' + 1 replace x = `j' + 0.4*S_1[`iy'[`i',1],`ix'[`j',1]] in `nn' replace z = `i' in `nn' local j = `j' - 1 } } if "`t1title'" == "" { local i = 100*S_3[1,3] local t1title "sample correlation with `i'% confidence interval" } gr y yy `Yv' z x, sym(.p`Sv'`symbol') c(..`Cv'.) noaxis yreverse /* */ xlab(`xlab') ylab(`ylab') pen(`PN3'`PN3'`Pv'`PN1') /* */ t1("`t1title'") `options' end program define zcx version 4.0 local varlist "req ex min(1)" parse "`*'" parse "`varlist'", parse(" ") local p = S_3[1,2] matrix S_0 = J(`p', 1, 0) local pp = 1 while "``pp''" != "" { local bb "`bb',`pp'" local j = rownumb(matrix(S_1), "``pp''") if `j' == . { di in red "Correlations with ``pp'' not found" error 499 } matrix S_0[`pp', 1] = `j' local aa "`aa' `pp' ``pp''" local pp = `pp' + 1 } global S_3 = `pp' - 1 global S_4 "`aa'" global S_5 = substr("`bb'", 2, .) end