This repository contains the pyramid_chart
ado file for creating population pyramid charts in Stata. The pyramid_chart
program allows you to create informative population pyramids, a type of graph that shows the distribution of a population by age groups and sex.
twoway
graph and scatter
graph options for further customization.To install the pyramid_chart
program, download the pyramid_chart.ado
and pyramid_chart.sthlp
files and place them in your Stata ado directory or your working directory. You can find or set your Stata ado path using the adopath
command in Stata.
The pyramid_chart
program supports additional options that can be passed to the twoway
graph command for further customization. All options for twoway
in stata should work, with the exception of legend()
, xlabel
, ylabel
which are produced using existing labels from the variables passed into the syntax.
Here is an example of how to use the pyramid_chart
program:
While reshaping is not required before producing a pyramid chart, it is important that the data is in long format before it is fed into the pyramid_chart
command. As an illustration, the following code reshapes the system-included pop2000.dta
dataset into a long dataset containing the three required variables: population
, sex
, and agegrp
.
sysuse pop2000.dta, clear
keep agegrp maletotal femtotal
rename maletotal population1
rename femtotal population2
reshape long population, i(agegrp) j(sex)
label define sexlbl 1 "Male" 2 "Female"
label values sex sexlbl
label variable population "Population"
label variable sex "Sex"
describe
Variable name | Storage type | Display format | Value label | Variable label |
---|---|---|---|---|
agegrp | float | %12.0gc | agelbl | Age group |
sex | byte | %10.0g | sexlbl | Sex |
population | float | %12.0gc | - | - |
A basic pyramid chart with minimum mandatory input, and using system generated default options.
pyramid_chart population, over(agegrp) by(sex) dec(0)
Add titles to the graph, add 1 decimal place to the bar labels.
pyramid_chart population, over(agegrp) by(sex) dec(1) title("Population Pyramid for year 2000") subtitle("in percentages") xtitle("Percentage") ytitle("Age groups")
Add scatterplot options (for example, for color selection of bar labels).
pyramid_chart population, over(agegrp) by(sex) dec(1) title("Population Pyramid for year 2000") subtitle("in percentages") xtitle("Percentage") ytitle("Age groups") sctopt(mlabcolor(blue))
Add various schemes to the graph.
pyramid_chart population, over(agegrp) by(sex) dec(1) title("Population Pyramid for year 2000") subtitle("in percentages") xtitle("Percentage") ytitle("Age groups") sctopt(mlabcolor(blue)) scheme(white_tableau)
pyramid_chart population, over(agegrp) by(sex) dec(1) title("Population Pyramid for year 2000") xtitle("Percentage") ytitle("Age groups") scheme(economist)
Detailed documentation for the pyramid_chart
program is available in the pyramid_chart.sthlp file. You can access it in Stata using the help command:
help pyramid_chart
graph
/ scatter
/ twoway
options.pyramid_chart.sthlp
file fixed.sctopt
inside the syntax.ssc install pyramid_chart
.Contributions are welcome! If you find a bug or have a feature request, please open an issue on GitHub. If you’d like to contribute code, please fork the repository and submit a pull request.
This project is licensed under the MIT License. See the LICENSE file for details.