python 之seaborn庫的基礎使用(畫板主題及顏色選擇)

一、seaborn庫是幹啥用的?

畫圖

Seaborn其實是在matplotlib的基礎上進行了更高級的API封裝,從而使得作圖更加容易,在大多數情況下使用seaborn就能做出很具有吸引力的圖,而使用matplotlib就能製作具有更多特色的圖。應該把Seaborn視爲matplotlib的補充,而不是替代物。

自己用seaborn也用得不深,這裏就把常用的總結一下,權當方便自己以後複習。

二、畫板主題設置

  1. 畫板有5種主題設置:darkgrid、whitegrid、dark、white、ticks
import seaborn as sns
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
%matplotlib inline

#生成一些測試數據
#不用sns的默認主題,需要自己進行設置
data1 = np.random.randint(1,10,100)
#fig = plt.figure(figsize=(9,6))
plt.hist(data1)

 未設置畫板時,默認是這個樣子

#用sns.set()是默認主題darkgrid
sns.set()
plt.hist(data1)

sns.set_style('darkgrid')
plt.hist(data1)

 

sns.set_style('whitegrid')
plt.hist(data1)

sns.set_style('white')
plt.hist(data1)

sns.set_style('dark')
plt.hist(data1)

#與white主題的區別是,多了刻度符
sns.set_style('ticks')
plt.hist(data1)

 

 2、設置圖表的4種格式:paper、talk、poster、notebook

注意觀察圖形和座標軸的變化

data_x = np.linspace(0,2*np.pi,100)
data_y = np.sin(data_x)

sns.set_context("paper")
plt.plot(data_x,data_y)

sns.set_context('talk')
plt.plot(data_x,data_y)

 

sns.set_context("poster")
plt.plot(data_x,data_y)

#font_scale是設置座標軸字體的大小,"lines.linewidth"是線型的大小
sns.set_context("notebook", font_scale=3.5, rc={"lines.linewidth": 4.5})
plt.plot(data_x,data_y)

 

 三、調色選擇

顏色選擇上,我是從使用的角度出發總結記憶的,色彩上,咱們常用的無非三種類型:

1、分類色(需要若干個色彩來代表不同主題,如表示五個省份近幾年的GDP變化情況,這時選擇的色彩就是分類色)

2、對比色(需要在對象之間做明顯比照,如果只有一組對象,直接用分類色就OK了,如果有多組對象,最好是同組對象是同一個色調不同飽和度,如深藍和淺藍)

3、漸變色(需要表現一個主題在不同階段的變化)

 1、分類色

分類色選擇一般用2種方法,一種是使用color_palette("hls", n)函數,使用hls顏色空間,選擇你需要的n中顏色即可;一種是用hls_palette(n, l=0.5, s=0.5)函數,選擇你需要的顏色數量n,再自定義l(lightness 亮度和situation飽和度)

import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
%matplotlib inline
sns.palplot(sns.color_palette("hls", 8))

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

 

#使用例子
data_x = np.arange(1,11,1)
data_y = np.random.randint(1,10,10)

pal = sns.color_palette("hls", 10)
sns.barplot(data_x,data_y,palette=pal)

 2、對比色

只有2個對象的對比色不用講了,直接用上面的分類色就行,如果有多組對象,每組有2個對象的,用函數color_palette("Paired",n)定義,n表示n個顏色。

這裏有一個疑問沒解決,如果有多組,一組有3個或3個以上對象,顏色對比就不會搞了,有會弄的大俠留言指教一下哩。

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

 

a = np.arange(1,9,1)
b = np.random.randint(1,10,8)
#print(b)
sns.barplot(a,b,palette=sns.color_palette("Paired", 8)) 

 

 3、漸變色

設置漸變色可以用四個函數實現:color_palette("顏色名",n)、cubehelix_palette(n, start=0.5, rot=-0.75)、light_palette("顏色名")、dark_palette("顏色名")

sns.palplot(sns.color_palette("Reds",10))

sns.palplot(sns.color_palette("Blues_r",10))

sns.palplot(sns.cubehelix_palette(8, start=.3, rot=-.15))

 

 

sns.palplot(sns.light_palette("green",8))
sns.palplot(sns.dark_palette("purple",8))

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章