分类色板(quanlitative)对于分类数据的显示很有帮助。当想要区别不连续的且内在没有顺序关系的数据时,这个方式是最好的。
seaborn中默认使用的调色板实际上是标准的matplolib色环。
sns.palplot(sns.color_palette())
默认的色环主题
有6种不同的默认主题,它们分别是:deep,muted,pastel,birght,dark,colorblind。
themes = ['deep', 'muted', 'pastel', 'bright', 'dark', 'colorblind']
for theme in themes:
sns.palplot(sns.color_palette(theme))
使用颜色空间(色圈)
当有超过6种类型的数据要区分时,最简单的方法就是在一个色圈内使用均匀分布的颜色。这也是当需要使用更多颜色时大多数seaborn函数的默认方式。
最常用的方法就是使用hls颜色空间,它是一种简单的RGB值的转换。
sns.palplot(sns.color_palette("hls", 10))
# hls_palette函数,用于调节hls颜色的亮度和饱和度。
sns.palplot(sns.hls_palette(10, l = .8, s = .8))
然而,由于人类视觉系统工作的原因,根据RGB颜色产生的平均视觉强度的颜色,从视觉上看起来并不是相同的强度。如果你观察仔细,就会察觉到,黄色和绿色会更亮一些,而蓝色则相对暗一些。因此,如果你想用hls系统达到一致性的效果,就会出现上面的问题。
为了修补这个问题,seaborn给hls系统提供了一个接口,可以让操作者简单容易的选择均匀分布,且亮度和饱和度看上去明显一致的色调。
sns.palplot(sns.color_palette("husl", 10))
# hls_palette函数,用于调节hls颜色的亮度和饱和度。
sns.palplot(sns.husl_palette(10, l = .8, s = .8))
使用分类Color Brewer调色板
Color Brewer中预定义了一批分类调色板,但颜色数量有限,可能会出现循环使用。
print(sns.color_palette("Set1", 10))
sns.palplot(sns.color_palette("Set1", 10))
sns.palplot(sns.color_palette("Set1", 10, 0.5))
完全使用自选颜色定义调色板
flatui = ["#9b59b6", "#3498db", "#95a5a6", "#e74c3c",
"#34495e", "#2ecc71"]
sns.palplot(sns.color_palette(flatui))