Source code for pyensae.graphhelper.mapplot

"""
Plotting maps.


:githublink:`%|py|5`
"""


[docs]def plot_map_france(ax=None, scale='50m'): """ Creates a map for France using :epkg:`cartopy`. :param ax: existing axes or None to create ones :param scale: scale in (`10m`, `50m`, `110m`) :return: ax .. plot:: from matplotlib import pyplot as plt from pyensae.graphhelper import plot_map_france plot_map_france() plt.show() You may want to add `ax.set_extent([-5., 10., 38., 52.])` after `ax = plot_map_france()`. See also example :ref:`l-map-france`. :githublink:`%|py|26` """ if ax is None: # pragma: no cover import matplotlib.pyplot as plt # pylint: disable=C0415 import cartopy.crs as ccrs # pylint: disable=C0415 fig = plt.figure(figsize=(8, 8)) ax = fig.add_subplot(1, 1, 1, projection=ccrs.PlateCarree()) # The following line may make the program crash on debian + python3.9.1. # ax.set_extent([-5, 10, 38, 52]) import cartopy.feature as cfeature # pylint: disable=C0415 ax.add_feature(cfeature.OCEAN.with_scale(scale)) ax.add_feature(cfeature.RIVERS.with_scale(scale)) ax.add_feature(cfeature.BORDERS.with_scale(scale), linestyle=':') return ax
[docs]def plot_map_france_polygon(geometry, colors, ax=None, scale='50m'): """ Plots polygons into a map for France. :param geometry: series of polygons :param colors: colors :param scale: scale, see :func:`map_france` :param ax: existing axes, None to create one :return: ax .. plot:: from matplotlib import pyplot as plt import cartopy.crs as ccrs from pyensae.datasource import load_french_departements from pyensae.graphhelper import plot_map_france, plot_map_france_polygon # loads the French departments df = load_french_departements() fig = plt.figure(figsize=(7,7)) ax = fig.add_subplot(1, 1, 1, projection=ccrs.PlateCarree()) N = float(df.shape[0]) plot_map_france_polygon( ax=ax, geometry=df['geometry'], colors=[(i/N, i/N, i/N) for i in range(df.shape[0])]) plt.show() You may want to add `ax.set_extent([-5., 10., 38., 52.])` after `ax = plot_map_france_polygon()`. See also example :ref:`l-map-france`. :githublink:`%|py|75` """ from geopandas.plotting import plot_polygon_collection # pylint: disable=C0415 ax = plot_map_france(scale=scale, ax=ax) plot_polygon_collection( ax, geometry, facecolor=colors, values=None, edgecolor='black') return ax