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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM