FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

Error for bbox_inches='tight' in savefig with make_axes_locatable · Issue #12355 · matplotlib/matplotlib · GitHub

Repository navigation

Error for bbox_inches='tight' in savefig with make_axes_locatable #12355

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

The wrong one:

# If applicable, paste the console output here
# None
#

Expected outcome

The correct figure:

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.

Activity

  1. jklymak commented on Oct 1, 2018

    Member

    This should probably be reported in the base map subgroup. Can you make this self contained?

    Things changed for drawing colorbars in MPL 3.0 and it’s possible we broke something for basemap, but it’s hard to know what.

  2. jiaozhh commented on Oct 1, 2018

    Author

    OK, I will report it in the basemap subgroup.

  3. jklymak commented on Oct 1, 2018

    Member

    OK I can reproduce in Matplotlib:

    Edit: has nothing to do with colorbar:

    import numpy as np
    import matplotlib.pyplot as plt
    from mpl_toolkits.axes_grid1 import make_axes_locatable
    
    fig, ax = plt.subplots()
    divider = make_axes_locatable(ax)
    cax = divider.append_axes('right', size='5%', pad='2%')
    plt.savefig('boo.pdf', dpi=300, bbox_inches='tight')  # wrong
    • Note that its something wrong w/ the bbox_inches='tight' interaction - plt.show() and plt.tight_layout() work as expected.
    • it doesn't matter if the colorbar is on the right or bottom of the page...
  4. jklymak commented on Oct 1, 2018

    Member
  5. jklymak commented on Oct 1, 2018

    Member

    Bisect says it was my PR: #9855

  6. jklymak commented on Oct 1, 2018

    Member

    This is quite a wild goose chase: #10682 also made this not work even if I roll back #9855 changes.

  7. changed the title [-]Error for bbox_inches='tight' in savefig[/-] [+]Error for bbox_inches='tight' in savefig with make_axes_locatable[/+] on Oct 1, 2018
  8. self-assigned this
    on Oct 1, 2018
  9. added this to the v3.0.x milestone on Oct 12, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions


    Back | FazBrowse Home | New Git URL