def position_subplots(ax_map, axs, scale=0.1):
    """Updates subplot positions in map

    Parameters
    ----------
    ax_map : AxesSubplot
        Map axes object
    axs : list of AxesSubplot
        List of subplots to be positioned. Each axes should have a
        property ``coords`` specifying the target position in data
        coordinates of the map axes.
    scale : float
        Size of subplots in axes coordinates

    """
    fig = ax_map.get_figure()
    for i, ax in enumerate(axs):
        if not hasattr(ax, 'coords'):
            continue
        pos = ax.get_position()
        pos_scn = ax_map.transData.transform(ax.coords)
        pos_axs = ax_map.transAxes.inverted().transform(pos_scn)
        pos_crn = [(pos_axs[0] - scale / 2.0, pos_axs[1] - scale / 2.0), (
            pos_axs[0] + scale / 2.0, pos_axs[1] + scale / 2.0)]
        pos_scn = ax_map.transAxes.transform(pos_crn)
        pos_fig = fig.transFigure.inverted().transform(pos_scn)
        pos.x0 = pos_fig[0, 0]
        pos.x1 = pos_fig[1, 0]
        pos.y0 = pos_fig[0, 1]
        pos.y1 = pos_fig[1, 1]
        ax.set_position(pos)
