On Wed, Jul 29, 2015 at 3:18 AM, Fabien <[email protected]> wrote:
> Folks, > > still in my exploring phase of Matplotlib's ecosystem I ran into > following mismatch between the APIs of BoundaryNorm and Normalize. > > See the following example: > > import matplotlib as mpl > c = mpl.cm.get_cmap() > bnorm = mpl.colors.BoundaryNorm([0,1,2], c.N) > nnorm = mpl.colors.Normalize(0, 2) > > # This works: > In [8]: c(nnorm(1.1)) > Out[8]: (0.64199873497786197, 1.0, 0.32574320050600891, 1.0) > > # This doesn't: > In [9]: c(bnorm(1.1)) > (...) > TypeError: 'numpy.int16' object does not support item assignment > > # But this works: > In [10]: c(bnorm([1.1])) > Out[10]: array([[ 0.5, 0. , 0. , 1. ]]) > > From the doc I would expect BoundaryNorm and Normalize to work the same > way. I find the error sent by BoundaryNorm quite misleading. > > Should I fill a bug report for this? > Fabien, What happens if your force the boundaries to floats? By that I mean: bnorm = mpl.colors.BoundaryNorm([0.0, 1.0, 2.0], c.N) -Paul
------------------------------------------------------------------------------
_______________________________________________ Matplotlib-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/matplotlib-users