When drawing cartopy maps, I add state lines with
ax.add_feature(cfeature.NaturalEarthFeature(
    'cultural', 'admin_1_states_provinces_lines', resolution,
    edgecolor='gray', facecolor='none'))
where resolution is '110m', '50m' or '10m'. The 110m dataset only contains US states, but the others contain far more. 
I would like to draw state lines only for selected countries (regardless of the resolution selected), like e.g. only US, Canada and Australia.
I found a similar question in Draw a map of a specific country with cartopy? and downloaded the US shape file from gadm.org. I added the states using
us_shapes = list(shpreader.Reader('shapefiles/gadm36_USA_1.shp').geometries())
ax.add_geometries(us_shapes, ccrs.PlateCarree(), edgecolor='gray',
                  facecolor='none')
But this creates two problem for me:
- The shapes also contain the country (US in this case) border itself, which I had previously drawn in black. I can of course draw the country borders after the state borders, but this is somewhat superfluous since a lot of coast line is drawn twice. Is there a way to only get the state lines within the country (so without country border)?
 - The shape file seems to contain a very fine resolution (maybe 10m?). When I draw the world map with 110m resolution, I would prefer to only get the state lines in 110m. Otherwise the time to draw the map is significantly larger and the country/state shapes are not perfectly on top. Does the shape file also contain the lower resolutions?
 
