I'm trying to produce a map showing water bodies like oceans/rivers/lakes polygons for purposes of plotting vessel voyages using cartopy. Ultimately I'm looking to create a sea mesh grid using the water polygons. However i'm stuck at the first step in generating the polygons for the water bodies. My marine polys look alright but my lakes rivers centerlines look like the polgons are clipped. Does anyone know how I can fix this? I'm pretty sure the rectangularish lakes are incorrectly displayed. My code in python is as follows:

ax = plt.axes(label = 'main_geoaxes',projection=ccrs.PlateCarree()) rivers_lake_centerlines = cf.NaturalEarthFeature(category='physical', name='rivers_lake_centerlines', scale='ne_10m',facecolor='b') ax.add_feature(rivers_lake_centerlines,zorder=1)

Lakes Rivers Centrelines Marine Polys

  • 1
    I've found out that the river lake centerlines map actually comprises LINES not polygons. The clipped areas are caused by setting facecolor of the lines (when I should be setting the edgecolor instead). My amended line of code below solved the problem. rivers_lake_centerlines = cf.NaturalEarthFeature(category='physical', name='rivers_lake_centerlines', scale='ne_10m',facecolor='none',edgecolor='b') Commented Jul 26, 2018 at 14:05
  • 1
    Please consider posting your solution as an answer to the question, so that others can benefit from the learning (and so that there aren't "unanswered" questions on the cartopy tag when they are really answered).
    – pelson
    Commented Jul 30, 2018 at 9:11
  • You might also like to reference the answer at stackoverflow.com/a/51494198/741316 which was asked 3 weeks ago.
    – pelson
    Commented Jul 30, 2018 at 9:12

1 Answer 1


For clarity's sake and upon request I have posted my code snippet .I've changed the map as of this posting so it is not identical to the two maps I've posted for above. Thank for you your replies!

    # Get cartopy features for plotting
    rivers_lake_centerlines = cf.NaturalEarthFeature(category = 'physical', name = 'rivers_lake_centerlines',
    scale = 'ne_10m', facecolor = 'none', edgecolor = 'blue')

    marine_polys = cf.NaturalEarthFeature(category='physical', name='geography_marine_polys', scale='ne_10m',
    graticules_1 = cf.NaturalEarthFeature(category='physical', name='graticules_5', scale='ne_10m', edgecolor='black')

    self.fig, self.ax = plt.subplots(subplot_kw={'projection': ccrs.PlateCarree()}, figsize=(30, 30))

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.