.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "gallery/scalar_data/geometry_data.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end ` to download the full example code .. rst-class:: sphx-glr-example-title .. _sphx_glr_gallery_scalar_data_geometry_data.py: Associating data with geometries -------------------------------- This example shows how to colour geometries based on a data array. This functionality is available since Cartopy 0.23. .. GENERATED FROM PYTHON SOURCE LINES 9-49 .. image-sg:: /gallery/scalar_data/images/sphx_glr_geometry_data_001.png :alt: Country Population Estimates :srcset: /gallery/scalar_data/images/sphx_glr_geometry_data_001.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-script-out .. code-block:: none /home/circleci/project/lib/cartopy/io/__init__.py:241: DownloadWarning: Downloading: https://naturalearth.s3.amazonaws.com/110m_cultural/ne_110m_admin_0_countries.zip warnings.warn(f'Downloading: {url}', DownloadWarning) | .. code-block:: Python import matplotlib.colors as mcolors import matplotlib.pyplot as plt import cartopy.crs as ccrs import cartopy.io.shapereader as shpreader def main(): # Load Natural Earth's country shapefiles. shpfilename = shpreader.natural_earth(resolution='110m', category='cultural', name='admin_0_countries') reader = shpreader.Reader(shpfilename) countries = reader.records() # Get hold of the geometry and population estimate from each country's record. geometries = [] population_estimates = [] for country in countries: geometries.append(country.geometry) population_estimates.append(country.attributes['POP_EST']) # Set up a figure and an axes with the Eckert VI projection. fig = plt.figure() ax = fig.add_subplot(projection=ccrs.EckertVI()) # Plot the geometries coloured according to population estimate. art = ax.add_geometries(geometries, crs=ccrs.PlateCarree(), array=population_estimates, cmap='YlGnBu', norm=mcolors.LogNorm(vmin=1e6)) cbar = fig.colorbar(art, orientation='horizontal', extend='min') cbar.set_label('Number of people') fig.suptitle('Country Population Estimates', fontsize='x-large') plt.show() if __name__ == '__main__': main() .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 1.900 seconds) .. _sphx_glr_download_gallery_scalar_data_geometry_data.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: geometry_data.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: geometry_data.py ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_