如何在matplotlib中使用seaborns color_palette作为色彩映射? [英] How do I use seaborns color_palette as a colormap in matplotlib?

查看:1343
本文介绍了如何在matplotlib中使用seaborns color_palette作为色彩映射?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Seaborn提供了一个名为color_palette的功能,可以让您轻松创建新的颜色对齐图。

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)

我想将color_palette转换为cmap,我可以在matplotlib中使用,但是我看不到我能做到这一点。

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.

可悲的是,像cubehelix_palette,light_palette,...有一个as_cmap参数。

Sadly just functions like "cubehelix_palette","light_palette",… have an "as_cmap" paramater. "color_palette" doesn't, unfortunately.

推荐答案

您必须将一个颜色列表从海床调色板转换为matplolib的颜色映射(thx to @RafaelLopes for proposed changes):

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()

这篇关于如何在matplotlib中使用seaborns color_palette作为色彩映射?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆