首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >seaborn color_palette as matplotlib色彩映射

seaborn color_palette as matplotlib色彩映射
EN

Stack Overflow用户
提问于 2016-06-19 07:11:49
回答 4查看 42.5K关注 0票数 52

Seaborn提供了一个名为color_palette的函数,它允许您轻松地为绘图创建新的color_palettes。

代码语言:javascript
复制
colors = ["#67E568","#257F27","#08420D","#FFF000","#FFB62B","#E56124","#E53E30","#7F2353","#F911FF","#9F8CA6"]

color_palette = sns.color_palette(colors)

我想将color_palette转换为cmap,我可以在matplotlib中使用它,但我不知道如何才能做到这一点。

可悲的是,只有像"cubehelix_palette","light_palette",…这样的函数有一个"as_cmap“参数。不幸的是,"color_palette“没有。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-06-19 08:15:54

您必须将颜色列表从seaborn调色板转换为matplolib的颜色映射(对于建议的更改,请将thx转换为@RafaelLope):

代码语言:javascript
复制
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()

票数 51
EN

Stack Overflow用户

发布于 2017-03-22 23:40:02

大多数用于生成调色板的seaborn方法都有一个可选的参数as_cmap,缺省情况下该参数为False。您可以使用直接获取Matplotlib色彩映射:

代码语言:javascript
复制
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()

票数 37
EN

Stack Overflow用户

发布于 2017-07-14 16:40:08

第一个答案在某种程度上是正确的,但太长了,有很多不必要的信息。正确而简短的答案是:

要将任何sns.color_palette()转换为matplotlib兼容的cmap,需要两行代码

代码语言:javascript
复制
from matplotlib.colors import ListedColormap
cmap = ListedColormap(sns.color_palette())
票数 27
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37902459

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档