1. 程式人生 > >18-12-7-視覺化庫Seaborn學習筆記(二:Color)

18-12-7-視覺化庫Seaborn學習筆記(二:Color)

目錄

 

1,調色盤

分類色板

圓形畫板

hls_palette()函式來控制顏色的亮度和飽和

使用XKCD顏色來命名顏色

連續色板

cubehelix_palette()調色盤

light_palette()和dark_palette()呼叫定製連續調色盤


1,調色盤

  • color_palette()能傳入任何Matplotlib所支援的顏色
  • color_palette()不寫引數則預設顏色
  • set_palette()設定所有圖的顏色
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
%matplotlib inline
sns.set(rc={"figure.figsize": (6, 6)})

分類色板

current_palette = sns.color_palette()
sns.palplot(current_palette)

6個預設的顏色迴圈主題:深沉,柔和,柔和,明亮,黑暗,色盲

圓形畫板

當你有六個以上的分類要區分時,最簡單的方法就是在一個圓形的顏色空間中畫出均勻間隔的顏色(這樣的色調會保持亮度和飽和度不變)。這是大多數的當他們需要使用比當前預設顏色迴圈中設定的顏色更多時的預設方案。

最常用的方法是使用HLS的顏色空間,這是RGB值的一個簡單轉換。

sns.palplot(sns.color_palette("hls", 12))

data = np.random.normal(size=(20, 12)) + np.arange(12) / 2
sns.boxplot(data=data,palette=sns.color_palette("hls", 12))

 

hls_palette()函式來控制顏色的亮度和飽和

  • 1-亮度輕盈
  • S-飽和飽和度
sns.palplot(sns.hls_palette(8, l=.5, s=.9))

sns.palplot(sns.hls_palette(8, l=.7, s=.9))

sns.palplot(sns.color_palette("Paired",8))

使用XKCD顏色來命名顏色

XKCD包含了一套眾包努力的針對隨機RGB色的命名。產生了954個可以隨時通過xdcd_rgb字典中呼叫的命名顏色。

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

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

連續色板

色彩隨資料變換,比如資料越來越重要則顏色越來越深

sns.palplot(sns.color_palette("BuGn"))

sns.palplot(sns.color_palette("BuGn_r"))

cubehelix_palette()調色盤

色調線性變換

sns.palplot(sns.color_palette("cubehelix", 8))

sns.palplot(sns.cubehelix_palette(8, start=.5, rot=-.75))

sns.palplot(sns.cubehelix_palette(8, start=.75, rot=-.150))

light_palette()和dark_palette()呼叫定製連續調色盤

sns.palplot(sns.light_palette("green"))

sns.palplot(sns.dark_palette("purple"))

sns.palplot(sns.light_palette("navy", reverse=True))    #reverse=True:顏色翻轉

x, y = np.random.multivariate_normal([0, 0], [[1, -.5], [-.5, 1]], size=300).T
pal = sns.dark_palette("red", as_cmap=True)
sns.kdeplot(x, y, cmap=pal);

sns.palplot(sns.light_palette((210, 90, 60), input="husl"))