NOAA-EMC / WW3-tools

19 stars 14 forks source link

Updated the default color palette to improve readability and visibility. #63

Closed Ghazal-Mohammadpour closed 4 months ago

Ghazal-Mohammadpour commented 4 months ago

Changes Made:

Replaced the original color palette with a new set of colors. The new colors have been selected to enhance readability and visibility.

Reasoning:

The original color palette lacked readability and visibility in certain contexts. The updated colors provide better contrast and are easier to distinguish.

Testing

Tested the new color palette in various visualization scenarios to ensure improved readability and visibility.

JessicaMeixner-NOAA commented 4 months ago

@ricampos - we found that some of the default colors like yellow or gold were hard to see and that the navy and the blue were at times hard to distinguish.

Here's the current list:

np.array(['navy', 'firebrick', 'darkgreen', 'fuchsia', 'gold', 'blue', 'salmon', 'lime', 'darkviolet', 'yellow',
                'cornflowerblue', 'red', 'green', 'violet', 'orange']))

and here's the proposed list:

 np.array(['darkred', 'purple', 'darkgreen', 'darkorange', 'deeppink', 'blue', 'brown', 'salmon', 'lime', 'darkviolet', 'yellow',
                'cornflowerblue', 'red', 'green', 'violet', 'orange']))

We do not want to break anything that you are already working on. It looks to me like we potentially could define custom arrays although are having some issues implementing that. Thoughts?

ricampos commented 4 months ago

Nice. Yes, please feel free to modify the style. My taste for colors is very "peculiar", feel free to change. I would just suggest paying attention to the order where you include them. Because this color array will be used for several functions which will be picking the colors consecutively according to the number of models etc .. So I kept 'navy' and 'firebrick' as the first 2 ones because they distinguish very well and look very sharp (easy to see). As most of the time there are 2 results to be compared, they are the most used. In your case, you would be using 'darkred' and 'purple' which can be more difficult to distinguish.

JessicaMeixner-NOAA commented 4 months ago

Good point @ricampos so maybe:

 np.array([ 'darkblue', 'darkred', 'darkgreen', 'darkorange', 'purple', 'deeppink', 'brown', 'salmon', 'lime', 'darkviolet', 'yellow',
                'cornflowerblue', 'red', 'green', 'violet', 'orange']))

??? I don't know we probably should find a table of these colors so we know what we're picking and if they look okay (I tried, but I think I was looking at the wrong table). I also know everyone will probably have slightly different preferences, so one quick question. It's my understanding that if we define another array and pass it as color, we should be able to over-write these default colors, is that true? If so, maybe we should add some instructions on how someone can do that?

ricampos commented 4 months ago

I like these colors. I agree with the update. Yes, you're correct. If you prefer a different color set, you can create and pass it to the function. Easy to customize.

Ghazal-Mohammadpour commented 4 months ago

@ricampos @JessicaMeixner-NOAA @sbanihash The colors are updated.

JessicaMeixner-NOAA commented 4 months ago

@ricampos just want to confirm with you before merge that this looks okay to you after the updates.

ricampos commented 4 months ago

thanks, @JessicaMeixner-NOAA Yes, it looks okay.