import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap

shape = shapes[0]

m = Basemap(*shape.bbox, resolution='i')
m.drawcoastlines(linewidth=0.4)
m.drawmeridians(np.arange(0, 360, 0.1), linewidth=0.2, color='silver', labels=[0,0,0,1], rotation=-45)
m.drawparallels(np.arange(-90, 90, 0.1), linewidth=0.2, color='silver', labels=[1,0,0,0])

parts = list(shape.parts)
for p0, p1 in zip(parts, parts[1:]+[len(shape.points)]):
    lons = [point[0] for point in shape.points[p0:p1]]
    lats = [point[1] for point in shape.points[p0:p1]]
    m.plot(lons, lats, linewidth=0.5, color='crimson')
plt.show()