pythonismyjam
pythonismyjam

Reputation: 99

Matplotlib basemap drawcounties doesn't work

Pretty much what the title says. My drawcounties command is just being ignored with no errors. Does it only plot on certain projections? The documentation doesn't say so.

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap, shiftgrid
import scipy

def BasemapParameters():
    """
    Sets up basemap.
    """
    m = Basemap(projection='mill', llcrnrlon = 230, llcrnrlat = 27,
                                   urcrnrlat = 45, urcrnrlon = 261,
                                   area_thresh = 1000., resolution='i')
    m.drawcounties(linewidth=0.5)
    m.drawcoastlines(linewidth=0.7)
    m.drawcountries(linewidth=0.5)
    m.drawstates(linewidth=0.5)
    m.drawmapboundary(linewidth=0.7)

def SavePlot(lvl,parameter,region,hour,padding):
    """
    Saves figure to file with given properties
    """
    plt.savefig('{0}_{1}_{2}_{3}.png'.format(lvl,parameter,region,hour),bbox_inches='tight',pad_inches = padding)
    plt.close("all")
    print('  "{0}_{1}_{2}_{3}.png" created.'.format(lvl,parameter,region,hour))

fig = plt.figure()
ax = fig.add_subplot(1,1,1)
BasemapParameters()
SavePlot('sfc','3hrpcp','sw','000',.07)

Output: enter image description here

Upvotes: 3

Views: 1153

Answers (2)

Ben Root
Ben Root

Reputation: 620

drawcoastlines() is plotting polygons with white faces, so that is going on top of the county lines.

Upvotes: 1

datacathy
datacathy

Reputation: 135

Try setting zorder = 20 (or something high) in drawcounties to put the county lines on top of the countries. Also see https://github.com/matplotlib/basemap/issues/324.

Upvotes: 0

Related Questions