Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork7.9k
Closed
Labels
Milestone
Description
Bug summary
In#20752 I added support forimshow(..., norm="log")
, and documented that the feature is supported in particular by hexbin as well; but this doesn't actually work for hexbin, because hexbin tries to run stuff on the norm before normalizing strings.
Code for reproduction
frompylabimport*hexbin(rand(100),rand(100),norm="log")
Actual outcome
File ".../matplotlib/axes/_axes.py", line 5247, in hexbin if norm.vmin is None and norm.vmax is None: ^^^^^^^^^AttributeError: 'str' object has no attribute 'vmin'
Expected outcome
no error
Additional information
Probably the block
# autoscale the norm with current accum values if it hasn't been setifnormisnotNone:ifnorm.vminisNoneandnorm.vmaxisNone:norm.autoscale(accum)
can just be moved down a bit after collection.set_norm(norm) (then we can get back the canonicalized norm from the collection). I haven't looked at how this interacts with the call to _scale_norm just below, though.
Operating system
any
Matplotlib Version
3.9.0.dev1523+g2723052176
Matplotlib Backend
any
Python version
3.12
Jupyter version
no
Installation
None