def make_twin_ax(ax):
    """
    Create a twin axis on an existing axis with a shared x-axis
    """
    # align the twinx axis
    twin_ax = ax.twinx()

    # Turn twin_ax grid off.
    twin_ax.grid(False)

    # Set ax's patch invisible
    ax.patch.set_visible(False)
    # Set axtwin's patch visible and colorize it in grey
    twin_ax.patch.set_visible(True)

    # move ax in front
    ax.set_zorder(twin_ax.get_zorder() + 1)

    return twin_ax