On Wed, Jul 29, 2015 at 3:18 AM, Fabien <fabien.mauss...@gmail.com> 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
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to