Non-contiguous cartogramΒΆ

../_images/obesity.png

Python source code: [download source: obesity.py]

# This examples was inspired by https://bl.ocks.org/mbostock/4055908

# Load the data (uses the `quilt` package).
import geopandas as gpd
from quilt.data.ResidentMario import geoplot_data

obesity = geoplot_data.obesity_by_state()
contiguous_usa = gpd.read_file(geoplot_data.contiguous_usa())
contiguous_usa['Obesity Rate'] = contiguous_usa['State'].map(
    lambda state: obesity.query("State == @state").iloc[0]['Percent']
)


# Plot the data.
import geoplot as gplt
import geoplot.crs as gcrs
import matplotlib.pyplot as plt


ax = gplt.cartogram(contiguous_usa, scale='Obesity Rate',
                    projection=gcrs.AlbersEqualArea(central_longitude=-98, central_latitude=39.5),
                    limits=(0.75, 1),
                    linewidth=0.5,
                    hue='Obesity Rate',
                    cmap='Reds',
                    k=5,
                    trace_kwargs={'linewidth': 0.5},
                    legend=True,
                    legend_kwargs={'loc': 'lower right'},
                    legend_var='hue',
                    figsize=(12, 12))

plt.title("Adult Obesity Rate by State, 2013")
plt.savefig("obesity.png", bbox_inches='tight', pad_inches=0.1)