Skip to content

Two colormaps named "spectral" #879

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
endolith opened this issue May 18, 2012 · 13 comments
Closed

Two colormaps named "spectral" #879

endolith opened this issue May 18, 2012 · 13 comments

Comments

@endolith
Copy link
Contributor

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
Copy link
Member

mdboom commented May 18, 2012

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
Copy link
Contributor

jswhit commented May 18, 2012

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
Copy link
Contributor Author

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
Copy link
Contributor Author

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
Copy link
Member

efiring commented Aug 13, 2012

Closed after #921 merge

@efiring efiring closed this as completed Aug 13, 2012
@endolith
Copy link
Contributor Author

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

@efiring efiring reopened this Aug 17, 2012
@efiring
Copy link
Member

efiring commented Aug 17, 2012

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
Copy link
Contributor Author

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
Copy link
Member

efiring commented Aug 18, 2012

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

@endolith
Copy link
Contributor Author

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
Copy link
Member

efiring commented Aug 20, 2012

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
Copy link
Contributor Author

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

@dmcdougall
Copy link
Member

Sorted! #1127 has been merged.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants