摘要:簡介同一樣,也是進行數據可視化分析的重要第三方包。的五種繪圖風格有五種的風格,它們分別是。
作者:xiaoyu
微信公眾號:Python數據科學
知乎:python數據分析師
最近在做幾個項目的數據分析,每次用到seaborn進行可視化繪圖的時候總是忘記具體操作。雖然seaborn的官方網站已經詳細的介紹了使用方法,但是畢竟是英文,而且查找不是很方便。因此博主想從零開始將seaborn學習一遍,做一個總結,也希望供大家使用參考。Seaborn簡介
seaborn同matplotlib一樣,也是Python進行數據可視化分析的重要第三方包。但seaborn是在 matplotlib的基礎上進行了更高級的API封裝,使得作圖更加容易,圖形更加漂亮。
博主并不認為seaborn可以替代matplotlib。雖然seaborn可以滿足大部分情況下的數據分析需求,但是針對一些特殊情況,還是需要用到matplotlib的。換句話說,matplotlib更加靈活,可定制化,而seaborn像是更高級的封裝,使用方便快捷。
應該把seaborn視為matplotlib的補充,而不是替代物。
Seaborn學習內容seaborn的學習內容主要包含以下幾個部分:
風格管理
繪圖風格設置
顏色風格設置
繪圖方法
數據集的分布可視化
分類數據可視化
線性關系可視化
結構網格
數據識別網格繪圖
本次將主要介紹風格管理的使用。
風格管理 - 繪圖風格設置除了各種繪圖方式外,圖形的美觀程度可能是我們最關心的了。將它放到第一部分,因為風格設置是一些通用性的操作,對于各種繪圖方法都適用。
讓我們先看一個例子。
%matplotlib inline import numpy as np import matplotlib as mpl import matplotlib.pyplot as plt import seaborn as sns np.random.seed(sum(map(ord, "aesthetics")))
我們定義了一個簡單的方程來繪制一些偏置的正弦波,用來幫助我們查看不同的圖畫風格是什么樣子的。
def sinplot(flip=1): x = np.linspace(0, 14, 100) for i in range(1, 7): plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)
matplotlib默認參數下繪制結果是這樣的:
sinplot()
轉換為seaborn默認繪圖,可以簡單的用set()方法。
sns.set() sinplot()
Seaborn 將 matplotlib 的參數劃分為兩個獨立的組合。第一組是設置繪圖的外觀風格的,第二組主要將繪圖的各種元素按比例縮放的,以至可以嵌入到不同的背景環境中。
操控這些參數的接口主要有兩對方法:
控制風格:axes_style(), set_style()
縮放繪圖:plotting_context(), set_context()
每對方法中的第一個方法(axes_style(), plotting_context())會返回一組字典參數,而第二個方法(set_style(), set_context())會設置matplotlib的默認參數。
Seaborn的五種繪圖風格有五種seaborn的風格,它們分別是:darkgrid, whitegrid, dark, white, ticks。它們各自適合不同的應用和個人喜好。默認的主題是darkgrid。
sns.set_style("whitegrid") data = np.random.normal(size=(20, 6)) + np.arange(6) / 2 sns.boxplot(data=data);
sns.set_style("dark") sinplot()
sns.set_style("white") sinplot()
sns.set_style("ticks") sinplot()移除軸脊柱
white 和 ticks兩個風格都能夠移除頂部和右側的不必要的軸脊柱。通過matplotlib參數是做不到這一點的,但是你可以使用seaborn的despine()方法來移除它們:
sinplot() sns.despine()
一些繪圖也可以針對數據將軸脊柱進行偏置,當然也是通過調用despine()方法來完成。而當刻度沒有完全覆蓋整個軸的范圍時,trim參數可以用來限制已有脊柱的范圍。
f, ax = plt.subplots() sns.violinplot(data=data) sns.despine(offset=10, trim=True);
你也可以通過despine()控制哪個脊柱將被移除。
sns.set_style("whitegrid") sns.boxplot(data=data, palette="deep") sns.despine(left=True)臨時設置繪圖風格
雖然來回切換風格很容易,但是你也可以在一個with語句中使用axes_style()方法來臨時的設置繪圖參數。這也允許你用不同風格的軸來繪圖:
with sns.axes_style("darkgrid"): plt.subplot(211) sinplot() plt.subplot(212) sinplot(-1)覆蓋seaborn風格元素
如果你想定制化seaborn風格,你可以將一個字典參數傳遞給axes_style()和set_style()的參數rc。而且你只能通過這個方法來覆蓋風格定義中的部分參數。
如果你想要看看這些參數都是些什么,可以調用這個方法,且無參數,這將會返回下面的設置:
sns.axes_style() {"axes.axisbelow": True, "axes.edgecolor": ".8", "axes.facecolor": "white", "axes.grid": True, "axes.labelcolor": ".15", "axes.linewidth": 1.0, "figure.facecolor": "white", "font.family": [u"sans-serif"], "font.sans-serif": [u"Arial", u"DejaVu Sans", u"Liberation Sans", u"Bitstream Vera Sans", u"sans-serif"], "grid.color": ".8", "grid.linestyle": u"-", "image.cmap": u"rocket", "legend.frameon": False, "legend.numpoints": 1, "legend.scatterpoints": 1, "lines.solid_capstyle": u"round", "text.color": ".15", "xtick.color": ".15", "xtick.direction": u"out", "xtick.major.size": 0.0, "xtick.minor.size": 0.0, "ytick.color": ".15", "ytick.direction": u"out", "ytick.major.size": 0.0, "ytick.minor.size": 0.0}
然后,你可以設置這些參數的不同版本了。
sns.set_style("darkgrid", {"axes.facecolor": ".9"}) sinplot()繪圖元素比例
有一套的參數可以控制繪圖元素的比例。
首先,讓我們通過set()重置默認的參數:
sns.set()
有四個預置的環境,按大小從小到大排列分別為:paper, notebook, talk, poster。其中,notebook是默認的。
sns.set_context("paper") sinplot()
sns.set_context("talk") sinplot()
sns.set_context("poster") sinplot()
你可以通過使用這些名字中的一個調用set_context()來設置參數,并且你可以通過提供一個字典參數值來覆蓋參數。當改變環境時,你也可以獨立的去縮放字體元素的大小。
sns.set_context("notebook", font_scale=1.5, rc={"lines.linewidth": 2.5}) sinplot()
同樣的,你可以通過嵌入with語句臨時的控制繪圖的比例。
總結介紹了Seaborn的5中繪圖風格
移除軸脊柱
臨時設置繪圖風格
覆蓋Seaborn風格元素
繪圖元素比例縮放
下一節將會介紹顏色風格的使用。
關注微信公眾號Python數據科學,獲取 120G 人工智能 學習資料。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/41746.html
摘要:使用分類調色板另外一種對分類數據比較友好的調色板來自工具。它們是以在調色板中的主導顏色或顏色命名的。連續調色板調色板系統在亮度和色變變化上具有線性上升或下降的特點。離散色板調色板中的第三類被稱為離散。 作者:xiaoyu微信公眾號:Python數據科學知乎:python數據分析師 Seaborn學習大綱 seaborn的學習內容主要包含以下幾個部分: 風格管理 繪圖風格設置 顏...
摘要:分類數據散點圖在分類數據的基礎上展示定量數據的最簡單函數就是。此外,小提琴內還顯示了箱體四分位數和四分位距。該函數會用高度估計值對數據進行描述,而不是顯示一個完整的條形,它只繪制點估計和置信區間。 作者:xiaoyu微信公眾號:Python數據科學知乎:python數據分析師 Seaborn學習大綱 seaborn的學習內容主要包含以下幾個部分: 風格管理 繪圖風格設置 顏色風...
摘要:數據集分布可視化當處理一個數據集的時候,我們經常會想要先看看特征變量是如何分布的。直方圖在橫坐標的數據值范圍內均等分的形成一定數量的數據段,并在每個數據段內用矩形條顯示軸觀察數量的方式,完成了對的數據分布的可視化展示。 作者:xiaoyu微信公眾號:Python數據科學知乎:python數據分析師 Seaborn學習大綱 seaborn的學習內容主要包含以下幾個部分: 風格管理 ...
摘要:數據分析的發展方向一般有商業方向,行業分析業務方向,和機器學習數據挖掘方向。機器學習的書籍推薦統計學習方法,機器學習,機器學習實戰三本書。 作者:xiaoyu 微信公眾號:Python數據科學 知乎:python數據分析師 上一篇主要分享了博主親身轉行數據分析的經歷: 【從零學起到成功轉行數據分析,我是怎么做的?】 本篇繼上一篇將分享轉行數據分析的一些經驗和學習方法,看完這篇你將會解...
閱讀 1637·2021-09-26 09:55
閱讀 1371·2021-09-23 11:22
閱讀 2724·2021-09-06 15:02
閱讀 2639·2021-09-01 11:43
閱讀 3950·2021-08-27 13:10
閱讀 3675·2021-08-12 13:24
閱讀 2069·2019-08-30 12:56
閱讀 2991·2019-08-30 11:22