Is there a way to make the map fill the entire canvas without the padding on top/bottom? It seems to max out the width, and then size down the map. The problem in your example code is that you are passing the arguments to Basemap.plot() the wrong way around. The arguments to Basemap.plot are exactly the same as those to matplotlib.pyplot.plot, i.e.: In cylindrical coordinates, longitude is the x-coordinate and latitude is the y-coordinate, so you should do mymap1.plot(data_lons, data_lats). The reason it seemed to work in your second example is that longitudes of ~52 and latitudes of ~1 make sense. The points were plotted, but somewhere far away from your domain. If you panned the window of ax1 far enough, you would have seen them (which is the same as doing ax.set_xlim(lat_bounds) and ax.set_ylim(lon_bounds)). Thanks to your example, I took the data and plotted it with cartopy. The following changes were needed to create the plot: This is using pcolormesh so is pretty quick (though your example wasn’t that slow on my machine in the first place). Source.