Fabien
2015-07-29 10:18:50 UTC
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?
Thanks!
Fabien
------------------------------------------------------------------------------
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?
Thanks!
Fabien
------------------------------------------------------------------------------