def test_colormaps_matplotlib(): v = np.random.random(1000) # The "Accent" colormap is deprecated as of 0.12: with warnings.catch_warnings(record=True) as w: # Cause all warnings to always be triggered. warnings.simplefilter("always") accent_cm = data.get_cmap("Accent") # Test that the deprecation warning was raised: npt.assert_(len(w) > 0) names = ['jet', 'Blues', 'bone'] if have_matplotlib and mpl_version < "2": names.append('Accent') for name in names: with warnings.catch_warnings(record=True) as w: # Matplotlib version of get_cmap rgba1 = fvtk.get_cmap(name)(v) # Dipy version of get_cmap rgba2 = data.get_cmap(name)(v) # dipy's colormaps are close to matplotlibs colormaps, but not # perfect: npt.assert_array_almost_equal(rgba1, rgba2, 1) npt.assert_(len(w) == (1 if name == 'Accent' else 0))
def test_colormaps_matplotlib(): v = np.random.random(1000) # The "Accent" colormap is deprecated as of 0.12: with warnings.catch_warnings(record=True) as w: # Cause all warnings to always be triggered. warnings.simplefilter("always") data.get_cmap("Accent") # Test that the deprecation warning was raised: npt.assert_(len(w) > 0) names = ['jet', 'Blues', 'bone'] if have_matplotlib and mpl_version < "2": names.append('Accent') for name in names: with warnings.catch_warnings(record=True) as w: # Matplotlib version of get_cmap rgba1 = fvtk.get_cmap(name)(v) # Dipy version of get_cmap rgba2 = data.get_cmap(name)(v) # dipy's colormaps are close to matplotlibs colormaps, but not # perfect: npt.assert_array_almost_equal(rgba1, rgba2, 1) npt.assert_(len(w) == (1 if name == 'Accent' else 0))
def test_colormaps_matplotlib(): v = np.random.random(1000) for name in 'jet', 'Blues', 'Accent', 'bone': # Matplotlib version of get_cmap rgba1 = fvtk.get_cmap(name)(v) # Dipy version of get_cmap rgba2 = data.get_cmap(name)(v) # dipy's colormaps are close to matplotlibs colormaps, but not perfect npt.assert_array_almost_equal(rgba1, rgba2, 1)
def create_colormap(v, name='plasma', auto=True): """Create colors from a specific colormap and return it as an array of shape (N,3) where every row gives the corresponding r,g,b value. The colormaps we use are similar with those of matplotlib. Parameters ---------- v : (N,) array vector of values to be mapped in RGB colors according to colormap name : str. Name of the colormap. Currently implemented: 'jet', 'blues', 'accent', 'bone' and matplotlib colormaps if you have matplotlib installed. For example, we suggest using 'plasma', 'viridis' or 'inferno'. 'jet' is popular but can be often misleading and we will deprecate it the future. auto : bool, if auto is True then v is interpolated to [0, 10] from v.min() to v.max() Notes ----- Dipy supports a few colormaps for those who do not use Matplotlib, for more colormaps consider downloading Matplotlib (see matplotlib.org). """ if name == 'jet': msg = 'Jet is a popular colormap but can often be misleading' msg += 'Use instead plasma, viridis, hot or inferno.' warn(msg, DeprecationWarning) if v.ndim > 1: msg = 'This function works only with 1d arrays. Use ravel()' raise ValueError(msg) if auto: v = np.interp(v, [v.min(), v.max()], [0, 1]) else: v = np.clip(v, 0, 1) # For backwards compatibility with lowercase names newname = lowercase_cm_name.get(name) or name colormap = get_cmap(newname) if colormap is None: e_s = "Colormap {} is not yet implemented ".format(name) raise ValueError(e_s) rgba = colormap(v) rgb = rgba[:, :3].copy() return rgb
def create_colormap(v, name='jet', auto=True): """Create colors from a specific colormap and return it as an array of shape (N,3) where every row gives the corresponding r,g,b value. The colormaps we use are similar with those of pylab. Parameters ---------- v : (N,) array vector of values to be mapped in RGB colors according to colormap name : str. Name of the colormap. Currently implemented: 'jet', 'blues', 'accent', 'bone' and matplotlib colormaps if you have matplotlib installed. auto : bool, if auto is True then v is interpolated to [0, 10] from v.min() to v.max() Notes ----- Dipy supports a few colormaps for those who do not use Matplotlib, for more colormaps consider downloading Matplotlib. """ if v.ndim > 1: msg = 'This function works only with 1d arrays. Use ravel()' raise ValueError(msg) if auto: v = np.interp(v, [v.min(), v.max()], [0, 1]) else: v = np.clip(v, 0, 1) # For backwards compatibility with lowercase names newname = lowercase_cm_name.get(name) or name colormap = get_cmap(newname) if colormap is None: e_s = "Colormap '%s' is not yet implemented " % name raise ValueError(e_s) rgba = colormap(v) rgb = rgba[:, :3].copy() return rgb