how can you change the order of colors used by seaborn? example:
import seaborn as sns
import pandas
data = pandas.DataFrame({"x": [1,2,3], "y": [1,1,1], "color": ["a", "b", "c"]})
sns.pointplot(x="x", y="y", hue="color", data=data)
how can the assignment of colors from the default palette, in "hue" be changed? for example, rather than having (blue, green, red) from the palette, having (green, blue, red)? I want to keep the same palette, just change the order of colors.
pointplot accepts a dictionary with the level names in the keys and color names in the values, so you could do that. In other words, palette=dict(a="g", b="b", c="r"). That is safest, but if you know the order of hues you're going to get (or specify it), you can also do palette=["g", "b", "r"].
The Seaborn docs on palettes dance around this, but here's how it works:
color_palette() will return your current color palette.current_palette = sns.color_palette().Third, note that that object supports __get_item__, so you could get the first and second colors in it as
first = current_palette[0]
second = current_palette[1]
Fourth: note the set_palette() function, which the docs note will accept a list of RGB tuples.
Finally, make a new palette as
sns.set_palette(
[second, first] + current_palette[2:]
)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With