proplot-dev / proplot

🎨 A succinct matplotlib wrapper for making beautiful, publication-quality graphics

Home Page:https://proplot.readthedocs.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Cannot pass norm argument to hist2d

kinyatoride opened this issue · comments

Description

There is an error message when I pass a norm argument to hist2d.

Steps to reproduce

import numpy as np
import proplot as pplt
import matplotlib as mpl

N = 500
state = np.random.RandomState(51423)
x = state.normal(size=(N,))
y = state.normal(size=(N,))

fig, ax = pplt.subplots()

_, _, _, m = ax.hist2d(x, y, norm=mpl.colors.LogNorm())
fig.colorbar(m)
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
Cell In[2], line 9
      6 fig, ax = pplt.subplots()
      8 _, _, _, m = ax.hist2d(x, y, norm=mpl.colors.LogNorm())
----> 9 fig.colorbar(m)

File ~/miniconda3/envs/basicf10/lib/python3.10/site-packages/proplot/figure.py:1634, in Figure.colorbar(self, mappable, values, loc, location, row, col, rows, cols, span, space, pad, width, **kwargs)
   1629 loc = _not_none(loc=loc, location=location, default='r')
   1630 ax = self._add_figure_panel(
   1631     loc, row=row, col=col, rows=rows, cols=cols, span=span,
   1632     width=width, space=space, pad=pad,
   1633 )
-> 1634 return ax.colorbar(mappable, values, loc='fill', **kwargs)

File ~/miniconda3/envs/basicf10/lib/python3.10/site-packages/proplot/axes/base.py:2440, in Axes.colorbar(self, mappable, values, loc, location, queue, **kwargs)
   2438     self._register_guide('colorbar', (mappable, values), loc, **kwargs)
   2439 else:
-> 2440     cb = self._draw_colorbar(mappable, values, loc=loc, **kwargs)
   2441     return cb

File ~/miniconda3/envs/basicf10/lib/python3.10/site-packages/proplot/axes/base.py:2311, in Axes._draw_colorbar(self, mappable, values, loc, space, pad, align, label, title, reverse, rotation, grid, edges, drawedges, extend, extendsize, extendfrac, tickminor, ticklen, ticklenratio, tickdir, tickdirection, tickwidth, tickwidthratio, ticklabelsize, ticklabelweight, ticklabelcolor, labelloc, labellocation, labelsize, labelweight, labelcolor, c, color, lw, linewidth, edgefix, rasterize, **kwargs)
   2309 else:
   2310     kwargs['extend'] = extend
-> 2311 obj = self.figure.colorbar(mappable, **kwargs)
...
-> 1480     raise ValueError("Invalid vmin or vmax")
   1481 value, is_scalar = self.process_value(value)
   1482 rescaled = value * (t_vmax - t_vmin)

ValueError: Invalid vmin or vmax

Equivalent steps in matplotlib

import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl

N = 500
state = np.random.RandomState(51423)
x = state.normal(size=(N,))
y = state.normal(size=(N,))

fig, ax = plt.subplots()

_, _, _, m = ax.hist2d(x, y, norm=mpl.colors.LogNorm())
fig.colorbar(m)

output

Proplot version

3.4.3
0.9.7