數據可視化(4)-Seaborn系列 | 分類圖catplot()

  • 2019 年 10 月 4 日
  • 筆記

本篇是《Seaborn系列》文章的第4篇-分類圖。

分類圖

分類圖catplot()

解析:

catplot() 分類圖(它是下面8種圖的介面,下面八種圖表均可通過指定kind參數來繪製)

1.stripplot() 分類散點圖

2.swarmplot() 能夠顯示分布密度的分類散點圖

3.boxplot() 箱圖、盒形圖

4.violinplot() 小提琴圖

5.boxenplot() 增強箱圖

6.pointplot() 點圖

7.barplot() 條形圖

8.countplot() 計數圖

函數原型

seaborn.catplot(x=None, y=None, hue=None,                  data=None, row=None, col=None,                  col_wrap=None, estimator=<function mean>, ci=95,                  n_boot=1000, units=None, order=None,                  hue_order=None, row_order=None, col_order=None,                  kind='strip', height=5, aspect=1, orient=None,                  color=None, palette=None, legend=True,                  legend_out=True, sharex=True, sharey=True,                  margin_titles=False, facet_kws=None, **kwargs)

參數解讀

表1
必須的參數data 其他參數均為可選;    data:是DataFrame類型的;    x,y為數據中變數的名稱(如上表,date,name,age,sex為數據欄位變數名);    row,col:數據中變數的名稱  作用:設置分類變數將決定網格的分面。    kind:字元串  要繪製的繪圖類型  (對應於分類繪圖功能的名稱:"count"-統計圖, "point"-點,  "bar"-條形, "strip"-條形, "swarm"-群形, "box"-框形,  "violin"-小提琴形, or"boxen"-盒形.)    col_wrap:int類型數值  作用:讓每行顯示指定數量的圖,如果超過該數量,則多行顯示。    orient:方向:v或者h  作用:設置圖的繪製方向(垂直或水平)  如何選擇:一般是根據輸入變數的數據類型(dtype)推斷出來。

案例教程

import seaborn as sns  sns.set(style="ticks")  exercise = sns.load_dataset("exercise")  exercise[:5]
import seaborn as sns  import matplotlib.pyplot as plt  sns.set(style="ticks")  # 獲取數據  exercise = sns.load_dataset("exercise")  """  案例1:基本分類圖  """  sns.catplot(x="time", y="pulse", hue="kind", data=exercise)  plt.show()
import seaborn as sns  import matplotlib.pyplot as plt  sns.set(style="ticks")  # 獲取數據  exercise = sns.load_dataset("exercise")  """  案例2:通過設置kind來指定繪製的圖類型    kind="violin" 則表示繪製小提琴圖  """  sns.catplot(x="time", y="pulse", hue="kind",data=exercise, kind="violin")  plt.show()
import seaborn as sns  import matplotlib.pyplot as plt  sns.set(style="ticks")  # 獲取數據  exercise = sns.load_dataset("exercise")  """  案例3:根據col分類,以列布局繪製多列圖  設置col,根據指定的col的變數名,以列的形式顯示(eg.col='diet',則在列的方向上顯示,顯示圖的數量為diet列中對值去重後的數量)  """  sns.catplot(x="time", y="pulse", hue="kind",col="diet", data=exercise)  plt.show()
import seaborn as sns  import matplotlib.pyplot as plt  sns.set(style="ticks")  # 獲取數據  exercise = sns.load_dataset("exercise")  """  案例4:繪圖時,設置圖(facets)的高度和寬度比  """  sns.catplot(x="time", y="pulse", hue="kind",col="diet", data=exercise,height=4, aspect=.8)  plt.show()
import seaborn as sns  sns.set(style="ticks")  # 使用 titanic數據集  titanic = sns.load_dataset("titanic")  # 獲取數據  #去掉deck這一列中值為空的數據  data=titanic[titanic.deck.notnull()]  data[:10]
import seaborn as sns  import matplotlib.pyplot as plt  sns.set(style="ticks")  # 獲取數據  #去掉deck這一列中值為空的數據  data=titanic[titanic.deck.notnull()]  """  案例5:利用catplot()繪製柱狀圖 kind="count"  設置col_wrap一個數值,讓圖每行只顯示數量為該數值的列,多餘的另起一行顯示  """  sns.catplot(x="alive", col="deck", col_wrap=4,data=data,kind="count", height=2.5, aspect=.8)  plt.show()
import seaborn as sns  import matplotlib.pyplot as plt  sns.set(style="ticks")  # 獲取數據  #去掉deck這一列中值為空的數據  data=titanic[titanic.deck.notnull()]  # 水平繪圖,並將其他關鍵字參數傳遞給繪圖函數  """  案例6:利用catplot()繪製小提琴圖 kind="violin"    orient設置圖的方向  """  sns.catplot(x="age", y="embark_town",hue="sex", row="class",              data=data,              orient="h", height=2, aspect=3, palette="Set3",              kind="violin",dodge=True,  cut=0, bw=.2)  plt.show()

案例地址

案例程式碼已上傳:Githubhttps://github.com/Vambooo/SeabornCN

整理製作:數據分析與可視化學研社

更多分享,請關注公眾號

Tags: