import pyproj

def lat_to_label(lat):
    if lat < 0:
        return r"${:g}$°S".format(-lat)
    elif lat > 0:
        return r"${:g}$°N".format(lat)
    else:
        return r"${:g}$°".format(lat)

transformer = pyproj.Transformer.from_crs(ccrs.PlateCarree(), ccrs.Robinson())

latlocs = np.linspace(-90,90,7)
latlocs_xy = [transformer.transform(-180,_s) for _s in latlocs]
latlabels = [lat_to_label(_s) for _s in latlocs]

def adjust_x(x, lat):
    return x * (1.02 + 0.2 * (abs(lat)/90.)**4)

fig = plt.figure()
ax = fig.add_subplot(projection=ccrs.Robinson(180))
ax.coastlines()
ax.gridlines()
for i in range(len(latlocs)):
    ax.text(adjust_x(latlocs_xy[i][0], latlocs[i]),
            latlocs_xy[i][1], latlabels[i], ha='right', va='center')