tft每日頭條

 > 科技

 > python繪圖教程入門

python繪圖教程入門

科技 更新时间:2024-07-19 16:11:19
專欄推薦seaborn的使用

seaborn學習框架是這樣的:

第一個:seaborn風格的學習

第二個:seaborn的調色闆

第三個:分布數據集的可視化:單變量分析繪圖和多變量分析繪圖

第四個:線性關系可視化

第五個:分類關系的可視化

第一個:

Seaborn将matplotlib參數分成兩個獨立的組。第一組設定了美學風格,第二組則是不同的度量元素,這樣就可以很容易地添加到代碼當中了。

操作這些參數的接口是兩對函數。為了控制樣式,使用axesstyle()和setstyle()函數。為了擴展繪圖,使用plotting_context()和set_context()函數。

第一個函數返回一個參數字典,第二個函數則設置matplotlib默認屬性


sns.set()這句代碼的意思就是重置seaborn的參數,就是以前設置的seaborn風格無效,如果參數為空就表示使用默認的seaborn風格,這是默認的風格實際上就是darkgrid風格,實際上有五種風格

python繪圖教程入門(常用的繪圖工具總結)1

一共有五個樣式,那麼可以使用sns.set_style("五種風格")來指定是使用哪種風格,指定之後所有的繪圖就都會按照這樣的風格來畫

除了直接指定風格,使用已經存在的這五種風格之外,還可以自定義seaborn的樣式,通過傳遞字典參數的方式

sns.set_style("ticks",{"xtick.major.size":8,"ytick.major.size":8})的方式來設置更加具體的樣式

set_style的第二個參數是rc。用于指定自定義的seaborn的樣式,rc字典中的鍵可以設置為下圖中的這麼多

python繪圖教程入門(常用的繪圖工具總結)2

python繪圖教程入門(常用的繪圖工具總結)3


除了以上的五種風格之外,還有sns.despine()這個是控制繪圖的邊框的,默認删除上方和右邊的方框。

sns.despine(left=True)删除左邊方框

sns.despine(offset=10,trim=True)offset是兩坐标軸離開距離,當邊框沒有覆蓋整個數據軸的範圍時,trim參數會限制留存的邊框範圍

despine(fig=None, ax=None, top=True, right=True, left=False, bottom=False, offset=None, trim=False)


設置一些線和字體的樣式,從上到下線條越來越粗

sns.set_context("paper")

sns.set_context("talk")

sns.set_context("poster")

sns.set_context("notebook")默認設置

還可以使用一些名稱來調用set_context來設置參數,然後通過提供的參數值的字典來覆蓋參數,寫入更加具體的一些配置

sns.set_context("notebook",font_scale=1.5,rc={"lines.linewidth":2.5})


seaborn的調色闆

color_palette()能傳入任何Matplotlib所支持的顔色

color_palette()不寫參數則默認顔色

set_palette()設置所有圖的顔色

最重要的就是直接設置調色闆的函數就是color_palette()這個函數提供了許多seaborn内生成顔色的方式,并且它可以用于任何函數内部的palette參數設置

具體使用方法為:

sns.set(rc={"figure.figsize":(6,6)})設置美學參數

current_palette=sns.color_palette()設置一個默認的調色闆

sns.palplot(current_palette)設置當前使用這個調色闆

上面就是使用一個調色闆的簡單的形式,調色闆有三種:

分類調色闆,連續調色闆,離散調色

分類調色闆

默認的調色闆隻有6個顔色,如果要是使用8個顔色呢

current_palette=sns.color_palette("his",8)

his是一個顔色空間,表示在his中均勻取8份,這樣的調色闆上就有8中顔色了。

畫闆有了之後除了可以通過sns.palplot來設置當前使用的這個調色闆之外還可以在畫圖的時候通過palette來指定

sns.boxplotl(data=data,palette=current_palette)data有8個數據,而current_palette正好有8個顔色

題外話:np.random.normal(size,loc.scale)是高斯分布

除了可以使用調色闆來設置顔色之外還可以通過控制顔色的高度或者飽和度來控制顔色,函數是hls.palette()函數。

舉例使用是:

sns.set(rc={"figure.figsize":(6,6)})

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

l表示亮度,s表示飽和度

由于人類視覺系統的工作方式,會導緻在RGB度量上強度一緻的顔色在視覺中并不平衡。比如,我們黃色和綠色是相對較亮的顔色,而藍色則相對較暗,使得這可能會成為與hls系統一緻的一個問題。

為了解決這一問題,seaborn為husl系統提供了一個接口,這也使得選擇均勻間隔的色彩變得更加容易,同時保持亮度和飽和度更加一緻。

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

Color Brewer工具,它提供了一些關于調色闆是色盲安全的指導。有各種各樣的适合色盲的顔色,但是最常見的變異導緻很難區分紅色和綠色。一般來說,避免使用紅色和綠色來表示顔色以區分元素是一個不錯的主意。

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

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


連續色闆

sns.palplot(sns.color_palette("BLUE"))藍色連續,後加-r是反轉,後加-d是暗處理

cubehelix調色闆系統具有線性增加或降低亮度和色調變化順序的調色闆,Matplotlib擁有一個默認的内置cubehelix版本可供創建:

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

通過seaborn的cubehelix_palette()函數返回的調色闆與matplotlib默認值稍有所不同,它不會在色輪周圍旋轉或覆蓋更廣的強度範圍。seaborn還改變了排序使得更重要的值顯得更暗:

sns.palplot(sns.cubehelix_palette(8))

其他cubehelix_palette()的參數主要調整色闆的視覺。兩個重要的選擇是:start(值的範圍為03)和rot,還有rot的次數(-11之間的任意值)

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

使用light_palette() 和dark_palette()調用定制連續調色闆

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

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


離散色闆

選擇離散色闆的規則類似于順序色闆,除了你想滿足一個強調的顔色中點以及用不同起始顔色的兩個相對微妙的變化。同樣重要的是,起始值的亮度和飽和度是相同的。

Color Brewer顔色字典裡擁有一套精心挑選的離散顔色映射:

sns.palplot(sns.color_palette("BrBG", 7))

sns.palplot(sns.color_palette("RdBu_r", 7))

另一個在matplotlib中建立coolwarm面闆。請注意,這個顔色映射在中間值和極端之間并沒有太大的對比。

sns.palplot(sns.color_palette("coolwarm", 7))

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved