Closed
Description
Bug report
Bug summary
When setting bbox_inches='tight' in savefig function, the colorbar is plotted in the wrong way.
Code for reproduction
import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.basemap import Basemap
outfile = r'E:\wrong.tif'
# read in data on lat/lon grid.
hgt = np.loadtxt(r'E:\tmp\basemap\500hgtdata.gz')
lons = np.loadtxt(r'E:\tmp\basemap\500hgtlons.gz')
lats = np.loadtxt(r'E:\tmp\basemap\500hgtlats.gz')
lons, lats = np.meshgrid(lons, lats)
mnh = Basemap(lon_0=-105, boundinglat=20.,
resolution='c', area_thresh=10000., projection='nplaea')
xnh, ynh = mnh(lons, lats)
CS = mnh.contour(xnh, ynh, hgt, 15, linewidths=0.5, colors='k')
CS = mnh.contourf(xnh, ynh, hgt, 15, cmap=plt.cm.Spectral)
mnh.drawcoastlines(linewidth=0.5)
delat = 30.
circles = np.arange(0., 90., delat).tolist() + \
np.arange(-delat, -90, -delat).tolist()
mnh.drawparallels(circles, labels=[1, 0, 0, 0])
delon = 45.
meridians = np.arange(0, 360, delon)
mnh.drawmeridians(meridians, labels=[1, 0, 0, 1])
plt.title('NH 500 hPa Height (cm.Spectral)')
# colorbar on bottom.
mnh.colorbar(pad='5%')
plt.savefig(outfile, dpi=300, bbox_inches='tight') # wrong
# plt.savefig(outfile, dpi=300) # right
plt.show()
Actual outcome
# If applicable, paste the console output here
# None
#
Expected outcome
Matplotlib version
- Operating system: Windows 10 x64
- Matplotlib version: 3.0.0
- Matplotlib backend (
print(matplotlib.get_backend())
): module://backend_interagg - Python version: 3.6.6
- Jupyter version (if applicable): None
- basemap version: 1.2.0
- PyCharm version: 2018.2.4
I install matplotlib and basemap from https://www.lfd.uci.edu/~gohlke/pythonlibs.