Tidy up U.S. Population by Age and Sex
"""
-US Population Over Time
-=======================
+US Population by Age and Sex
+============================
This chart visualizes the age distribution of the US population over time.
It uses a slider widget that is bound to the year to visualize the age
distribution over time.
@@ -11,21 +11,23 @@ from vega_datasets import data
source = data.population.url
-pink_blue = alt.Scale(domain=('Male', 'Female'),
- range=["steelblue", "salmon"])
-
-slider = alt.binding_range(min=1900, max=2000, step=10)
-select_year = alt.selection_single(name="year", fields=['year'],
- bind=slider, init={'year': 2000})
+select_year = alt.selection_single(
+ name="Year",
+ fields=["year"],
+ bind=alt.binding_range(min=1900, max=2000, step=10, name="Year"),
+ init={"year": 2000},
+)
alt.Chart(source).mark_bar().encode(
- x=alt.X('sex:N', title=None),
- y=alt.Y('people:Q', scale=alt.Scale(domain=(0, 12000000))),
- color=alt.Color('sex:N', scale=pink_blue),
- column='age:O'
-).properties(
- width=20
-).add_selection(
+ x=alt.X("sex:N", axis=alt.Axis(labels=False, title=None, ticks=False)),
+ y=alt.Y("people:Q", scale=alt.Scale(domain=(0, 12000000)), title="Population"),
+ color=alt.Color(
+ "sex:N",
+ scale=alt.Scale(domain=("Male", "Female"), range=["steelblue", "salmon"]),
+ title="Sex",
+ ),
+ column=alt.Column("age:O", title="Age"),
+).properties(width=20, title="U.S. Population by Age and Sex").add_selection(
select_year
).transform_calculate(
"sex", alt.expr.if_(alt.datum.sex == 1, "Male", "Female")
