-
Notifications
You must be signed in to change notification settings - Fork 34
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
Choose a better color scheme #355
Comments
Well, any cmocean or scientific colormap is ok here. Terrain isn't perceptually uniform. Viridis and plasma from mpl are, viridis being the default there. Personally I like colorschemes with many colors to distinguish patterns in my data, such as turbo, even though it isn't perfectly uniform. So viridis and delta? And ofcourse, there are cases, but harder to detect, where you want other colors, such as boolean, but also discrete and circular. |
Not sure, really. Doesn't it depend on what you're trying to plot or to highlight? More color variation (ie terrain rather than viridis) might be better for detailed images. |
@cormullion I was guessing that people will choose something when they really know what they want, this is just for the default exploratory It seems we agree on the issue - perceptual maps are accepted as the best, but in practice we often prefer more color range than perfect perceptual uniformity.
|
My 2 cents: What about Plots.jl's default? (I think it's one of And if you are going to dispatch to a different colormap for boolean args I think the first 2 colors of a categorical palette is better, e.g., |
Your right probably just using a different palette for Bool is a good idea. My hesitation to use I guess I'm wondering if we can make a compromise between perceptual consistency and detail. The R raster default has a really wide range: I dont love that colorscheme but you can see a lot of detail. |
To run with the maximising detail idea I'm playing with a widened batlow like this custom 1.5 cycle hue with lumin/chroma gradient. I think it does better than Maybe just getting |
I'd definitely recommend using a well-vetted perceptually uniform color scheme. These ones are really good. https://juliagraphics.github.io/ColorSchemes.jl/stable/catalogue/#cmocean But for the record I disagree with the notion that having a wider range of colors improves the ability to discern detail, though it's a common misperception. The human eye is quite capable of distinguishing even small changes in luminosity. Having a wide range of colors have the single advantage of making it easier to compare colors very exactly at different regions of the map, but at the cost of losing the ability to perceive gradual gradients. I don't think that's a very good tradeoff to make. I'd warmly recommend reading all 6 chapters of this essay: https://earthobservatory.nasa.gov/blogs/elegantfigures/2013/08/05/subtleties-of-color-part-1-of-6/ (small correspondence here https://www.nature.com/articles/519291d - the custom "batlow" color scheme above suffers from the very same issues in my opinion) |
Thanks! That's super useful input. Overall I do agree on using something tested, although you would be surprised how easy it is to make perceptually even colorschemes these days. And even new R packages like terra still use these non-perceptual colorschemes with wide color ranges, there has to be a reason for that. Do you think anything in cmocean is better than The main problem I find with seeing detail in shorter scientific color ranges like viridis/magma etc is in the dark ends of the range - this is pretty well demonstrated in viridis above - in the "contrast" layer you can barely see detail in the north of Australia that you can quite easily see with |
I don't have much against Plots' default is With regards to the dark color under My personal take: So maybe batlow or something like |
This is exactly the blunt, opinionated feedback I was looking for ;) My reasoning for batlow over the others is from this paper: But I will also check out |
Not that this is important, but no, |
Colorcet ones are good too, and their website does a good job with their gallery that showcases the perceptual gradients with a test image that has a little sinewave where wiggles appear clearly and reach further downwards if the gradient is perceptually strong, and wiggles disappear if the gradient is weak. There's a nice comparison with (The names of the colormaps seem different from ColorSchemes.jl so maybe worth an issue?) |
Yeah turbo is much better than jet https://ai.googleblog.com/2019/08/turbo-improved-rainbow-colormap-for.html @briochemc is there any one scheme from colorcet that you really like for maps though? The geographical one is for hillshade. |
I'm not sure which is best... But maybe worth pinging @peterkovesi himself? I just realized he ported his work to Julia! (See PerceptualColourMaps.jl.) |
All the colorcet maps are also included in Colorschemes.jl now. It makes sense to use that package imho. |
Currently we're using
:curl
which looks great but is incorrect usage of a diverging scheme and really doesn't work forBool
maps:Personally I use
![trim_example_after](https://user-images.githubusercontent.com/2534009/209547955-1994ee17-db11-45e0-8cc9-0531db7a245e.png)
:batlow
the most these days:But I would really like some suggestions from people who know colors better than I do.
Preferably something from ColorSchemes.jl but I'm open to other suggestions too.
@mkborregaard and @cormullion as the most knowledgeable people I know on the subject, do you have any suggestions here? Should it just be
:viridis
? it seems a bit boring and doesn't have a wide enough color range. There is also:terrain
?The text was updated successfully, but these errors were encountered: