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')