def plot_geo_time_value(x, y, year, value, proj='plate', titre='Annee', **
    kwargs):
    """
    Returns  many maps done with cartopy
    :param          x               vecteur de longitudes
    :param          y               vecteur de latitudes
    :param          value           vecteur des valeurs representees
    :param          year            vecteur des annees sur lesquelles les cartes sont faites
    :param          proj            le type de projection utilisee
    :param          titre           le titre voulu pour le graphique
    :kwargs                         parametres additionnels
    """
    import cartopy.crs as ccrs
    import cartopy.feature as cfeature
    from matplotlib import pyplot as plt
    from cartopy.feature import NaturalEarthFeature, COLORS
    import numpy as np
    import math
    import pandas as pd
    resolution = '50m'
    BORDERS = NaturalEarthFeature('cultural', 'admin_0_boundary_lines_land',
        resolution, edgecolor='black', facecolor='none')
    STATES = NaturalEarthFeature('cultural',
        'admin_1_states_provinces_lakes', resolution, edgecolor='black',
        facecolor='none')
    COASTLINE = NaturalEarthFeature('physical', 'coastline', resolution,
        edgecolor='black', facecolor='none')
    LAKES = NaturalEarthFeature('physical', 'lakes', resolution, edgecolor=
        'face', facecolor=COLORS['water'])
    LAND = NaturalEarthFeature('physical', 'land', resolution, edgecolor=
        'face', facecolor=COLORS['land'], zorder=-1)
    OCEAN = NaturalEarthFeature('physical', 'ocean', resolution, edgecolor=
        'face', facecolor=COLORS['water'], zorder=-1)
    RIVERS = NaturalEarthFeature('physical', 'rivers_lake_centerlines',
        resolution, edgecolor=COLORS['water'], facecolor='none')
    assert isinstance(x, np.ndarray
        ), 'Erreur, x n est pas de type np.ndarray(vecteur)'
    assert isinstance(y, np.ndarray
        ), 'Erreur, y n est pas de type np.ndarray(vecteur)'
    assert isinstance(year, np.ndarray
        ), 'Erreur, year n est pas de type np.ndarray(vecteur)'
    assert isinstance(value, pd.DataFrame
        ), 'Erreur, values n est pas de type pd.DataFrame'
    assert len(x) == len(y), 'Erreur, x et y doit etre de meme taille'
    assert type(year[0]
        ) == np.int32, 'Erreur, les annees ne sont pas des entiers'
    assert type(proj
        ) == str, 'Erreur: vous devez choisir une variable de projection de type string (pensez a changer)'
    assert proj in ['mercator', 'plate'
        ], 'Erreur: la projection doit etre "mercato" ou "plate"'
    assert type(titre) == str, 'Erreur, titre est un string'
    RADIUS = 6378137.0
    if len(year) % 2 == 1:
        a = len(year) // 2 + 1
    else:
        a = len(year) / 2
    fig = plt.figure(figsize=(10, 7))
    c = [0] * len(x)
    b = [0] * len(y)
    if proj == 'mercator':
        for j in range(len(c)):
            c[j] = math.radians(x[j]) * RADIUS
            b[j] = math.log(math.tan(math.pi / 4 + math.radians(y[j]) / 2)
                ) * RADIUS
    else:
        c = x
        b = y
    for i in range(len(year)):
        if proj == 'plate':
            ax = fig.add_subplot(a, 2, i + 1, projection=ccrs.PlateCarree())
        else:
            ax = fig.add_subplot(a, 2, i + 1, projection=ccrs.Mercator())
        ax.set_extent([-5, 10, 41, 52])
        ax.add_feature(BORDERS)
        ax.add_feature(LAKES)
        ax.add_feature(LAND)
        ax.add_feature(OCEAN)
        ax.add_feature(RIVERS)
        ax.add_feature(COASTLINE)
        if max(value.iloc[:, (i)]) <= 1:
            plt.scatter(c, b, s=value.iloc[:, (i)] * 100, c=value.iloc[:, (
                i)], alpha=0.5)
        elif max(value.iloc[:, (i)]) <= 10:
            plt.scatter(c, b, s=value.iloc[:, (i)] * 10, c=value.iloc[:, (i
                )], alpha=0.5)
        else:
            plt.scatter(c, b, s=value.iloc[:, (i)], c=value.iloc[:, (i)],
                alpha=0.5)
        plt.colorbar()
        ax.set_title(str(titre) + ':' + str(year[i]))
