seaborn---样式控制/调色板

一、样式控制

1.set([context,style,palette,font,...])

一步设定美学参数。

2.axes_style([style,rc])

返回参数字典,用于绘图的美学风格。

3.set_style([style,rc])

设定地块的审美风格。

4.plotting_context([context,font_scale,rc])

返回参数dict以缩放图形的元素。

5.set_context([context,font_scale,rc])

设置绘图上下文参数。

6.set_color_codes([调色板])

更改matplotlib颜色缩写词的解释方式。

7.reset_defaults()

将所有RC参数恢复为默认设置。

8.reset_orig()

将所有RC参数恢复为原始设置(尊重自定义rc)。

二、调色板

调色板分为三类:

  • Sequential:按顺序渐变的。 - Light colours for low data, dark for high data
  • Diverging:彼此之间差异变化较大的。 - Light colours for mid-range data, low and high contrasting dark colours
  • Qualitative:这个用于最大程度地显示不同类之间的差别。 - Colours designed to give maximum visual difference between classes

1.color_palette()

seaborn.color_palette(palette=None, n_colors = None, desat = None)
  • paletteNone,string或sequence,可选,默认有6种主题:deep,muted, pastel, bright, dark, colorblind
  • n_colors:颜色个数
  • desat:每种颜色去饱和的比例

返回:

  • palette:RGB元组列表

 举例:

import seaborn as sns
 
sns.palplot(sns.color_palette())
sns.palplot(sns.color_palette('deep',8))
sns.palplot(sns.color_palette('muted',8))
sns.palplot(sns.color_palette('pastel',8))
sns.palplot(sns.color_palette('bright',8))
sns.palplot(sns.color_palette('dark',8))
sns.palplot(sns.color_palette('colorblind',8))

其他颜色风格:Accent,Blues,BrBG

import seaborn as sns

#风格内容:Accent,Blues,BrBG等等
#风格颜色转换(不是所有颜色都可以反转):Blues/Blues_r
#分组颜色设置 -'Paried'
sns.palplot(sns.color_palette('Paired',8))
sns.palplot(sns.color_palette('Accent',8))
sns.palplot(sns.color_palette('Blues',8))
sns.palplot(sns.color_palette('Blues_r',8))
sns.palplot(sns.color_palette('BrBG',8))

2. set_palette():

3.husl_palette():设置亮度,饱和度

seaborn.husl_palette(n_colors=6, h=0.01, s=0.9, l=0.65)
  • n_colors:颜色个数
  • h:第一个色调
  • s:饱和度
  • l:亮度

可用方法:

husl_palette([n_colors, h, s, l])
hsl_palette([n_colors, h, l, s])  

举例:

sns.palplot(sns.hls_palette(8 , l = .8, s = .5))

4.cubehelix_palette():按照线性增长计算,设置颜色

seaborn.cubehelix_palette(n_colors=6, start=0, rot=0.4, gamma=1.0, hue=0.8, light=0.85, dark=0.15, reverse=False, as_cmap=False)
  • n_colors:颜色个数
  • start :值区间在0-3,开始颜色
  • rot:颜色旋转角度
  • gamma:颜色伽马值,越大颜色越暗
  • dark,light:值区间0-1,颜色越深
  • reverse:布尔值,默认为False,由浅到深
sns.palplot(sns.cubehelix_palette(8, gamma = 2))
sns.palplot(sns.cubehelix_palette(8, start = .5, rot = -.75))
sns.palplot(sns.cubehelix_palette(8, start = 2, rot = 0, dark = 0, light = .95, reverse = True))

5.dark_palette()、light_palette():深色/浅色调色板

seaborn.dark_palette(color,n_colors = 6,reverse = False,as_cmap = False,input ='rgb' )

参数:

  • color:高值的颜色
  • n_colors:颜色个数
  • reverse:默认为False
  • as_cmap:如果为True,则返回matplotlib colormap;为False,则返回list
  • input:{'rgb','hls','husl','xkcd'}

返回:palette或cmap:seaborn调色板或matplotlib colormap,类似列表的颜色对象作为RGB元组,或者可以将连续值映射到颜色的颜色图对象,具体取决于as_cmap参数的值 

dark_palette(color[, n_colors, reverse, ...]) #制作一个从黑暗到混合的顺序调色板
light_palette(color[, n_colors, reverse, ...])

举例:

sns.palplot(sns.light_palette('green')) #按照green做浅色调色盘
sns.palplot(sns.color_palette('Greens')) #cmap为Greens风格
 
sns.palplot(sns.dark_palette('red', reverse = False)) #按照blue做深色调色盘
#reverse ---> 转置颜色

sns.palplot(sns.light_palette('red',reverse=False))

6.diverging_palette创建分散颜色

seaborn.diverging_palette(h_neg,h_pos, s=75, l=50, sep=10, n=6, center='light', as_cmap=False)

参数:

  • h_neg,h_pos:[0,359]
    定位在负数与正数色调范围
  • s:[0,100],可选
    定位饱和度
  • l:[0,100],可选
    定位亮度
  • n:int,可选
    如果不返回cmap,将返回颜色数字
  • center:{“light”,“dark”},可选
    调色板中心是亮还是暗
  • as_cmap:布尔,可选
    如果为真,返回matplotlib colormap 对象;否则返回一个颜色列表

返回:

  • palette or cmap:seaborn color palette 或者matplotlib colormap
    颜色的类表对象(RGB元组),或者colormap能够映射连续的值到颜色,决定于 as_cmap 参数

举例:

sns.palplot(sns.diverging_palette(200, 20, l=40, n=4))

 用分散颜色制作热力图

plt.figure(figsize = (8,6))
x = np.arange(25).reshape(5,5)
cmap = sns.diverging_palette(200,20,sep=20,as_cmap=True)
sns.heatmap(x, cmap=cmap)#热力图

效果如下:

7.blend_palette()

8.xkcd_palette():命名颜色

xkcd包含了一套众包努力的针对随机RGB色的命名。产生了954个可以随时通过xdcd_rgb字典中调用的命名颜色

colors = ["windows blue", "amber", "greyish", "faded green", "dusty purple"]
sns.palplot(sns.xkcd_palette(colors))

plt.plot([0, 1], [0, 1], sns.xkcd_rgb["pale red"], lw=1)
plt.plot([0, 1], [0, 2], sns.xkcd_rgb["medium green"], lw=3)
plt.plot([0, 1], [0, 3], sns.xkcd_rgb["denim blue"], lw=3)

9.crayon_palette()

10.mpl_palette()

三、调色板小部件

1.choose_colorbrewer_palette(data_type [,as_cmap])

从ColorBrewer集中选择一个调色板

2.choose_cubehelix_palette([as_cmap])

启动交互式小部件以创建顺序cubehelix调色板

3.choose_light_palette([input,as_cmap])

启动交互式小部件以创建轻型顺序调色板

4.choose_dark_palette([input,as_cmap])

启动交互式小部件以创建暗序连接调色板

5.choose_diverging_palette([as_cmap])

启动交互式小部件以选择不同的调色板

四、实用功能

1.load_dataset(name [,cache,data_home])

从在线存储库加载数据集(需要互联网)

2.despine([fig,ax,top,right,left,bottom,...])

从图中移除顶部和右侧脊柱。

3.desaturate(颜色,道具)

将颜色的饱和度通道减少百分之几

4.saturate(颜色)

返回具有相同色调的完全饱和的颜色

5.set_hls_values(颜色[,h,l,s])

 独立操作颜色的h,l或s通道

参考文献:

【1】seaborn.diverging_palette

【2】【干货】 知否?知否?一文彻底掌握Seaborn

原文地址:https://www.cnblogs.com/nxf-rabbit75/p/10974448.html