📄 gr_example2.ado
字号:
end
program tworcap
Msg preserve
preserve
Xeq sysuse sp500, clear
Xeq gen month = month(date)
Xeq sort month
Xeq by month: egen lo = min(volume)
Xeq by month: egen hi = max(volume)
Xeq format lo hi %10.0gc
Xeq by month: keep if _n==_N
#delimit ;
Xeq
twoway rcap lo hi month,
xlabel(1 "J" 2 "F" 3 "M" 4 "A" 5 "M" 6 "J"
7 "J" 8 "A" 9 "S" 10 "O" 11 "N" 12 "D")
xtitle("Month of 2001")
ytitle("High and Low Volume")
yaxis(1 2) ylabel(12321 "12,321 (mean)", axis(2) angle(0))
ytitle("", axis(2))
yline(12321, lstyle(foreground))
msize(*2)
title("Volume of the S&P 500", margin(b+2.5))
note("Source: Yahoo!Finance and Commodity Systems Inc.")
;
#delimit cr
Msg restore
end
program twoarea
Msg preserve
preserve
Xeq sysuse gnp96, clear
#delimit ;
Xeq
twoway area d.gnp96 date, xlabel(36(8)164, angle(90))
ylabel(-100(50)200, angle(0))
ytitle("Billions of 1996 Dollars")
xtitle("")
subtitle("Change in U.S. GNP", position(11))
note("Source: U.S. Department of Commerce, Bureau of Economic Analysis")
;
#delimit cr
Msg restore
end
program twoarea2
Msg preserve
local seed "`c(seed)'"
preserve
Xeq sysuse gnp96, clear
Xeq gen diff = d.gnp96
set seed 2938
Xeq gen u = uniform()
set seed `seed'
Xeq sort u
Xeq twoway area diff date
Msg restore
end
program tworarea
Msg preserve
preserve
Xeq sysuse auto, clear
Xeq quietly regress mpg weight
Xeq predict hat
Xeq predict s, stdf
Xeq gen low = hat - 1.96*s
Xeq gen hi = hat + 1.96*s
#delimit ;
Xeq
twoway
rarea low hi weight, sort color(gs14) ||
scatter mpg weight
;
#delimit cr
Msg restore
end
program twofunc
#delimit ;
Xeq twoway function y=exp(-x/6)*sin(x), range(0 12.57)
yline(0, lstyle(foreground))
xlabel(0 3.14 "pi" 6.28 "2 pi" 9.42 "3 pi" 12.57 "4 pi")
plotregion(style(none))
xsca(noline)
;
#delimit cr
end
program twofunc2
#delimit ;
Xeq
twoway
function y=normden(x), range(-4 -1.96) color(gs12) recast(area)
|| function y=normden(x), range(1.96 4) color(gs12) recast(area)
|| function y=normden(x), range(-4 4) lstyle(foreground)
||,
plotregion(style(none))
ysca(off) xsca(noline)
legend(off)
xlabel(-4 "-4 sd" -3 "-3 sd" -2 "-2 sd" -1 "-1 sd" 0 "mean"
1 "1 sd" 2 "2 sd" 3 "3 sd" 4 "4 sd", grid gmin gmax)
xtitle("")
;
#delimit cr
end
program textop1
NotSmall
Msg preserve
preserve
Xeq sysuse uslifeexp, clear
#delimit ;
Xeq
twoway line le year ||
fpfit le year ||
, ytitle("Life Expectancy, years")
xlabel(1900 1918 1940(20)2000)
title("Life Expectancy at Birth")
subtitle("U.S., 1900-1999")
note("Source: National Vital Statistics Report, Vol. 50 No. 6")
legend(off)
text(48.5 1923
"The 1918 Influenza Pandemic was the worst epidemic"
"known in the U.S."
"More citizens died than in all combat deaths of the"
"20th century."
, box place(se) just(left) margin(l+4 t+1 b+1) width(85))
;
#delimit cr
Msg restore
end
program textop2
NotSmall
Msg preserve
preserve
Xeq sysuse uslifeexp, clear
#delimit ;
Xeq
twoway line le year ||
fpfit le year ||
, ylabel(,grid) ytitle("Life Expectancy, years")
xlabel(1900 1918 1940(20)2000)
title("Life Expectancy at Birth")
subtitle("U.S., 1900-1999")
note("Source: National Vital Statistics Report, Vol. 50 No. 6")
legend(off)
text(48.5 1923
"The 1918 Influenza Pandemic was the worst epidemic"
"known in the U.S."
"More citizens died than in all combat deaths of the"
"20th century."
, box place(se) just(left) margin(l+4 t+1 b+1) width(40))
;
#delimit cr
Msg restore
end
program textop3
NotSmall
Msg preserve
preserve
Xeq sysuse uslifeexp, clear
#delimit ;
Xeq
twoway line le year ||
fpfit le year ||
, ylabel(,grid) ytitle("Life Expectancy, years")
xlabel(1900 1918 1940(20)2000)
title("Life Expectancy at Birth")
subtitle("U.S., 1900-1999")
note("Source: National Vital Statistics Report, Vol. 50 No. 6")
legend(off)
text(48.5 1923
"The 1918 Influenza Pandemic was the worst epidemic"
"known in the U.S."
"More citizens died than in all combat deaths of the"
"20th century."
, box place(se) just(left) margin(l+4 t+1 b+1) width(95))
;
#delimit cr
Msg restore
end
program matrix1
Msg preserve
preserve
Xeq sysuse lifeexp, clear
Xeq gen lgnppc = ln(gnppc)
Xeq gr matrix popgr lexp lgnp safe
Msg restore
end
program matrix2
Msg preserve
preserve
Xeq sysuse lifeexp, clear
Xeq gen lgnppc = ln(gnppc)
Xeq gr matrix popgr lgnp safe lexp, half
Msg restore
end
program matrix3a
Msg preserve
preserve
Xeq sysuse lifeexp, clear
Xeq gen lgnppc = ln(gnppc)
Xeq gr matrix popgr lgnp safe lexp
Msg restore
end
program matrix3
Msg preserve
preserve
Xeq sysuse lifeexp, clear
Xeq gen lgnppc = ln(gnppc)
Xeq gr matrix popgr lgnp safe lexp, ///
maxes(ylab(#4, grid) xlab(#4, grid))
Msg restore
end
program matrix4
Msg preserve
preserve
Xeq sysuse lifeexp, clear
Xeq gen lgnppc = ln(gnppc)
Xeq label var lgnppc "ln GNP per capita"
#delimit ;
Xeq gr matrix popgr lgnp safe lexp,
maxes(ylab(#4, grid) xlab(#4, grid))
subtitle("Summary of 1998 life-expectancy data")
note("Source: The World Bank Group")
;
#delimit cr
Msg restore
end
program combine1
NewFile male.gph
NewFile female.gph
Msg preserve
preserve
Xeq sysuse uslifeexp, clear
Xeq line le_male year, saving(male)
Xeq line le_female year, saving(female)
Xeq gr combine male.gph female.gph
Xeq erase male.gph
Xeq erase female.gph
Msg restore
end
program combine2
NewFile male.gph
NewFile female.gph
Msg preserve
preserve
Xeq sysuse uslifeexp, clear
Xeq line le_male year, ylab(,grid) saving(male)
Xeq line le_female year, ylab(,grid) saving(female)
Xeq gr combine male.gph female.gph, col(1) scale(1)
Xeq erase male.gph
Xeq erase female.gph
Msg restore
end
program combine3
NewFile male.gph
NewFile female.gph
Msg preserve
preserve
Xeq sysuse uslifeexp, clear
Xeq line le_male year, saving(male)
Xeq line le_female year, saving(female)
Xeq gr combine male.gph female.gph, ycommon
Xeq erase male.gph
Xeq erase female.gph
Msg restore
end
program combine4
NewFile hy.gph
NewFile hx.gph
NewFile yx.gph
Msg preserve
preserve
Xeq sysuse lifeexp, clear
Xeq gen loggnp = log10(gnppc)
Xeq label var loggnp "Log base 10 of GNP per capita"
#delimit ;
Xeq
scatter lexp loggnp,
ysca(alt) xsca(alt)
xlabel(, grid gmax)
saving(yx)
;
Xeq
twoway histogram lexp, fraction
xsca(alt reverse) horiz
saving(hy)
;
Xeq
twoway histogram loggnp, fraction
ysca(alt reverse)
ylabel(,nogrid) xlabel(,grid gmax)
saving(hx)
;
Xeq
graph combine hy.gph yx.gph hx.gph,
hole(3)
imargin(0 0 0 0) graphregion(margin(l=22 r=22))
title("Life expectancy at birth vs. GNP per capita")
note("Source: 1998 data from The World Bank Group")
;
#delimit cr
Xeq erase hy.gph
Xeq erase hx.gph
Xeq erase yx.gph
Msg restore
end
program combine5
NewFile hy.gph
NewFile hx.gph
NewFile yx.gph
Msg preserve
preserve
Xeq sysuse lifeexp, clear
Xeq gen loggnp = log10(gnppc)
Xeq label var loggnp "Log base 10 of GNP per capita"
#delimit ;
Xeq
scatter lexp loggnp,
ysca(alt) xsca(alt)
xlabel(, grid gmax)
saving(yx)
;
Xeq
twoway histogram lexp, fraction
xsca(alt reverse) horiz
fxsize(25)
saving(hy)
;
Xeq
twoway histogram loggnp, fraction
ysca(alt reverse) ylabel(0(.1).2, nogrid)
xlabel(,grid gmax) fysize(25)
saving(hx)
;
Xeq
graph combine hy.gph yx.gph hx.gph,
hole(3)
imargin(0 0 0 0) graphregion(margin(l=22 r=22))
title("Life expectancy at birth vs. GNP per capita")
note("Source: 1998 data from The World Bank Group")
;
#delimit cr
Xeq erase hy.gph
Xeq erase hx.gph
Xeq erase yx.gph
Msg restore
end
program define NewFile
args fn
capture confirm new file `fn'
if _rc {
di as txt "{p 0 2 2}"
di "Example cannot be be run because you already have a"
di "file named {res:`fn'}"
di "{p_end}"
error 602
}
end
program plotop1
Msg preserve
preserve
Xeq sysuse cancer, clear
Xeq stset studytime, fail(died)
Xeq sts graph
Msg restore
end
program plotop2
Msg preserve
preserve
qui sysuse cancer, clear
qui stset studytime, fail(died)
Xeq quietly streg, distribution(exponential)
Xeq predict S, surv
Xeq graph twoway line S _t, sort
Msg restore
end
program plotop3
Msg preserve
preserve
qui sysuse cancer, clear
qui stset studytime, fail(died)
qui streg, distribution(exponential)
qui predict S, surv
Xeq sts graph, plot(line S _t, sort)
Msg restore
end
program grbar0
preserve
quietly {
drop _all
set obs 1
gen ne = 27.9 in 1
gen nc = 21.7 in 1
gen south = 46.1 in 1
gen west = 46.2 in 1
}
Xeq graph bar (asis) ne nc south west
end
program grbar0b
preserve
quietly {
drop _all
set obs 4
gen tempjan = 27.9 in 1
replace tempjan = 21.7 in 2
replace tempjan = 46.1 in 3
replace tempjan = 46.2 in 4
gen str8 region = "N.E." in 1
replace region = "N. Central" in 2
replace region = "South" in 3
replace region = "West" in 4
}
Xeq graph bar (asis) tempjan, over(region)
end
program grbar1a
Msg preserve
preserve
Xeq sysuse citytemp4, clear
#delimit ;
Xeq gr bar tempjuly tempjan, over(region)
legend( label(1 "July") label(2 "January") )
ytitle("Degrees Fahrenheit")
title("Average July and January temperatures")
subtitle("by regions of the United States")
note("Source: U.S. Census Bureau, U.S. Dept. of Commerce")
;
#delimit cr
Msg restore
end
program grbar1lab
Msg preserve
preserve
Xeq sysuse citytemp4, clear
#delimit ;
Xeq gr bar tempjuly tempjan, over(region)
bargap(-30)
legend( label(1 "July") label(2 "January") )
ytitle("Degrees Fahrenheit")
title("Average July and January temperatures")
subtitle("by regions of the United States")
note("Source: U.S. Census Bureau, U.S. Dept. of Commerce")
blabel(bar, position(inside) format(%9.1f) color(white))
;
#delimit cr
Msg restore
end
program grbar1
Msg preserve
preserve
Xeq sysuse citytemp4, clear
#delimit ;
Xeq gr bar tempjuly tempjan, over(region)
bargap(-30)
legend( label(1 "July") label(2 "January") )
ytitle("Degrees Fahrenheit")
title("Average July and January temperatures")
subtitle("by regions of the United States")
note("Source: U.S. Census Bureau, U.S. Dept. of Commerce")
;
#delimit cr
Msg restore
end
program grbar2
Msg preserve
preserve
Xeq sysuse citytemp4, clear
#delimit ;
Xeq graph bar (mean) tempjuly tempjan,
over(division, label(labsize(*.75)))
over(region)
bargap(-30) nofill
ytitle("Degrees Fahrenheit")
legend( label(1 "July") label(2 "January") )
title("Average July and January temperatures")
subtitle("by region and division of the United States")
note("Source: U.S. Census Bureau, U.S. Dept. of Commerce")
;
#delimit cr
Msg restore
end
program grbar3
Msg preserve
preserve
Xeq sysuse citytemp4, clear
#delimit ;
Xeq gr hbar tempjan, over(division) over(region) nofill
ytitle("Degrees Fahrenheit")
title("Average January temperature")
subtitle("by region and division of the United States")
note("Source: U.S. Census Bureau, U.S. Dept. of Commerce")
;
#delimit cr
Msg restore
end
program grbar5
NotSmall
Msg preserve
preserve
Xeq sysuse nlsw88, clear
#delimit ;
Xeq graph bar wage, over(smsa) over(married) over(collgrad)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -