Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Loading…

Two colormaps named "spectral" #879

Closed
endolith opened this Issue · 13 comments

5 participants

@endolith

I'm trying to figure out where all the different colormaps came from and document their purpose, and I noticed that there is a spectral and also a Spectral, which are not the same thing:

spectral and Spectral

Maybe one should be renamed? Or kept for backwards compatibility and given an alias to differentiate them?

@mdboom
Owner

This is great work! Having a quick colormap reference page in the docs would be awesome. Thanks!

I agree the naming is too confusing, but it's too late in the day for me to come up with a better name for either. But I agree whatever we do that aliasing (and deprecating the old name) is a good idea.

@jswhit
Collaborator

I added the "Spectral" colormap a long time ago while adding all the colormaps from here:

http://soliton.vm.bytemark.co.uk/pub/cpt-city/cb/div/index.html

DIdn't realize it had the same spelling as an existing colormap (or maybe the "spectral" colormap was added later?)

If anyone can suggest a better name I'll rename it (and leave an alias)

@endolith

Lowercase spectral was added later, all by itself, while uppercase Spectral is part of the ColorBrewer set, so I would think the lowercase one should be renamed, since it isn't part of a group it needs to be consistent with.

(spectral is the only non-MATLAB-copied map that gets its own function. Is there any rhyme or reason to which ones should get this?)

@endolith

Ok, I found it: http://sourceforge.net/mailarchive/message.php?msg_id=8931272

Originally from neuroimaging project, so rename spectral to nipy_spectral in the same way as gist_rainbow was copied from the GIST project? But then what should spectral() do?

@efiring
Owner

Closed after #921 merge

@efiring efiring closed this
@endolith

Unless I'm really confused, this wasn't solved by #921. Was it changed in some other place?

@efiring efiring reopened this
@efiring
Owner

You are right, it wasn't. Somehow I thought you had solved all colormap problems.

Suggested pull request for this one: as you suggest, make nipy_spectral an alias for spectral (or vice-versa). I think I would then leave the spectral() function--it isn't doing any harm, and it has probably been there for a while--and modify the docstring to note that it is using nipy_spectral.

@endolith

hmmm. so there will be

  • plt.cm.Spectral
  • plt.cm.nipy_spectral
  • plt.cm.spectral: alias for plt.cm.nipy_spectral, marked in the docstring as deprecated
  • spectral(): which is equivalent to set_cmap(plt.cm.nipy_spectral)
@efiring
Owner

Alternative suggestions are welcome, but we can't simply delete spectral() or cm.Spectral or cm.spectral.

@endolith

def spectral():
says

# This function was autogenerated by boilerplate.py.  Do not edit as
# changes will be lost

How do I edit the spectral function then?

@efiring
Owner

You would have to remove "spectral" from the list of cmaps in boilerplate.py, manually add an equivalent function to pyplot.py, and re-run boilerplate.py, which will propagate the first change into pyplot.py. See the boilerplate.py docstring.

@endolith

I left the spectral() function in the footnotes, since it was an oddball anyway, and recommended set_cmap('nipy_spectral') instead.

@dmcdougall
Collaborator

Sorted! #1127 has been merged.

@dmcdougall dmcdougall closed this
@endolith endolith referenced this issue in scikit-image/scikit-image
Open

DOC: change colormap to gray #1327

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.