Seaborn offers a function called color_palette, which allows you to easily create new color_palettes for plots.
colors = ["#67E568","#257F27","#08420D","#FFF000","#FFB62B","#E56124","#E53E30","#7F2353","#F911FF","#9F8CA6"] color_palette = sns.color_palette(colors)
I want to transform color_palette to a cmap, which I can use in matplotlib, but I don't see how I can do this.
Sadly just functions like "cubehelix_palette","light_palette",… have an "as_cmap" paramater. "color_palette" doesn't, unfortunately.
Scientifically, the human brain perceives various intuition based on the different colors they see. Matplotlib provides some nice colormaps you can use, such as Sequential colormaps, Diverging colormaps, Cyclic colormaps, and Qualitative colormaps.
Colormap. The new default colormap used by matplotlib. cm. ScalarMappable instances is 'viridis' (aka option D).
Most seaborn methods to generate color palettes have an optional argument as_cmap
which by default is False
. You can use to directly get a Matplotlib colormap:
import seaborn as sns import matplotlib.pylab as plt import numpy as np # construct cmap my_cmap = sns.light_palette("Navy", as_cmap=True) N = 500 data1 = np.random.randn(N) data2 = np.random.randn(N) colors = np.linspace(0,1,N) plt.scatter(data1, data2, c=colors, cmap=my_cmap) plt.colorbar() plt.show()
You have to convert a list of colors from seaborn palette to color map of matplolib (thx to @RafaelLopes for proposed changes):
import seaborn as sns import matplotlib.pylab as plt import numpy as np from matplotlib.colors import ListedColormap # construct cmap flatui = ["#9b59b6", "#3498db", "#95a5a6", "#e74c3c", "#34495e", "#2ecc71"] my_cmap = ListedColormap(sns.color_palette(flatui).as_hex()) N = 500 data1 = np.random.randn(N) data2 = np.random.randn(N) colors = np.linspace(0,1,N) plt.scatter(data1, data2, c=colors, cmap=my_cmap) plt.colorbar() plt.show()
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