Это может быть " чистый способ раскраски только определенных стран (на примере Намибии) ". Дается только соответствующая часть кода.
import matplotlib.pyplot as plt
import geopandas as gpd
from descartes import PolygonPatch
world = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres'))
def plotCountryPatch( axes, country_name, fcolor ):
# plot a country on the provided axes
nami = world[world.name == country_name]
namigm = nami.__geo_interface__['features'] # geopandas's geo_interface
namig0 = {'type': namigm[0]['geometry']['type'], \
'coordinates': namigm[0]['geometry']['coordinates']}
axes.add_patch(PolygonPatch( namig0, fc=fcolor, ec="black", alpha=0.85, zorder=2 ))
# plot the whole world
#ax2 = world.plot( figsize=(8,4), edgecolor=u'gray', cmap='Set2' )
# or plot Africa continent
ax2 = world[world.continent == 'Africa'].plot(figsize=(8,8), edgecolor=u'gray', cmap='Pastel1')
# then plot some countries on top
plotCountryPatch(ax2, 'Namibia', 'red')
plotCountryPatch(ax2, 'Libya', 'green')
# the place to plot additional vector data (points, lines)
plt.ylabel('Latitude')
plt.xlabel('Longitude')
#ax2.axis('scaled')
plt.show()
Полученный участок: