#!/usr/bin/env python
# coding: utf-8
# In[98]:
# import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
sns.set(rc={"figure.figsize": (6, 6)})
np.random.seed(sum(map(ord, "palettes")))
sns.color_palette()
# color_palette函数可以接受任何seaborn或者matplotlib颜色表中颜色名称(除了jet),也可以接受任何有效的 matplolib 形式的颜色列表(比如RGB元组,hex颜色代码,或者HTML颜色名称)。
# 这个函数的返回值总是一个由RGB元组组成的列表,无参数调用color_palette函数则会返回当前默认的色环的列表,比如:
#
# 还有一个相应的函数,是set_palette,它接受与color_palette一样的参数,并会对所有的绘图的默认色环进行设置。当然,你也可以在with语句中使用color_palette来临时的改变默认颜色。
#
#
# 1. 分类色板(qualitative)
# Qualitative调色板,也可以说成是 分类 调色板,因为它对于分类数据的显示很有帮助。当你想要区别 "不连续的且内在没有顺序关系的 数据时",这个方式是最好的。
#
# 当导入seaborn时,默认的色环就被改变成一组包含6种颜色的调色板,它使用了标准的matplolib色环,为了让绘图变得更好看一些。
# In[63]:
current_palette = sns.color_palette()
sns.palplot(current_palette)
# 有6种不同的默认主题,它们分别是:deep,muted,pastel,birght,dark,colorblind。
# In[64]:
themes = ['deep', 'muted', 'pastel', 'bright', 'dark', 'colorblind']
for theme in themes:
current_palette = sns.color_palette(theme)
sns.palplot(current_palette)
# 使用色圈系统
# 默认的6种颜色看上去真不错,但是如果我们想要超过6种颜色呢?
#
# 当你有超过6种类型的数据要区分时,最简单的方法就是 在一个色圈空间内使用均匀分布的颜色。这也是当需要使用更多颜色时大多数seaborn函数的默认方式。
#
# 最常用的方法就是使用 hls 色空间,它是一种简单的RGB值的转换。
# In[65]:
sns.palplot(sns.color_palette("hls", 22))
# 除此之外,还有一个 hls_palette 函数,它可以让你控制 hls 颜色的亮度和饱和度。
# In[66]:
sns.palplot(sns.hls_palette(8, l=.5, s=.9))
# 然而,由于人类视觉系统工作的原因,根据RGB颜色产生的平均视觉强度的颜色,从视觉上看起来并不是相同的强度。如果你观察仔细,就会察觉到,黄色和绿色会更亮一些,而蓝色则相