數據可視化(8)-Seaborn系列 | 分類散點圖stripplot()

  • 2019 年 10 月 7 日
  • 筆記

分類散點圖

stripplot()可以自己實現對數據分類的展現,也可以作為盒形圖或小提琴圖的一種補充,用來顯示所有結果以及基本分布情況。

函數原型

seaborn.stripplot(x=None, y=None, hue=None,                    data=None, order=None, hue_order=None,                    jitter=True, dodge=False, orient=None,                    color=None, palette=None, size=5,                    edgecolor='gray', linewidth=0, ax=None, **kwargs)

參數解讀

table1
x,y,hue:數據欄位變數名(如上表,date,name,age,sex為數據欄位變數名)  作用:根據實際數據,x,y常用來指定x,y軸的分類名稱,  hue常用來指定第二次分類的數據類別(用顏色區分)    data: DataFrame,數組或數組列表    order,hue_order:字元串列表  作用:顯式指定分類順序,eg. order=[欄位變數名1,欄位變數名2,...]    jitter : float類型,True/1  作用:當數據重合較多時,用該參數做一些調整,也可以設置間距  如,jitter = 0.1 (通俗講,就是讓數據分散開)    dodge:bool  作用:若設置為True則沿著分類軸,將數據分離出來成為不同色調級別的條帶,  否則,每個級別的點將相互疊加    orient:方向:v或者h  作用:設置圖的繪製方向(垂直或水平),  如何選擇:一般是根據輸入變數的數據類型(dtype)推斷出來。    color:matplotlib 顏色    palette:調色板名稱,list類別或者字典  作用:用於對數據不同分類進行顏色區別    size:float  作用:設置標記大小(標記直徑,以磅為單位)    edgecolor:matplotlib color,gray  作用:設置每個點的周圍線條顏色    linewidth:float  作用:設置構圖元素的線寬度

案例教程

import seaborn as sns  import matplotlib.pyplot as plt  #設置風格  sns.set(style="whitegrid")  # 構建數據  tips = sns.load_dataset("tips")  """  案例1:  水平散點圖  """  sns.stripplot(x=tips["total_bill"])  plt.show()
import seaborn as sns  import matplotlib.pyplot as plt  #設置風格  sns.set(style="whitegrid")  # 構建數據  tips = sns.load_dataset("tips")  """  案例2:  根據x的類別進行分組統計  """  sns.stripplot(x="day",y="total_bill", data=tips)  plt.show()
import seaborn as sns  import matplotlib.pyplot as plt  #設置風格  sns.set(style="whitegrid")  # 構建數據  tips = sns.load_dataset("tips")  """  案例3:  設置jitter來增加數據的抖動(當數據重合較多時,可以讓數據更加分散一些)    可以比較案例2和案例3  """  sns.stripplot(x="day", y="total_bill", data=tips, jitter=True)  plt.show()
import seaborn as sns  import matplotlib.pyplot as plt  #設置風格  sns.set(style="whitegrid")  # 構建數據  tips = sns.load_dataset("tips")  """  案例4:  設置jitter來增加數據的抖動(當數據重合較多時,可以讓數據更加分散一些)    可以比較案例2、案例3和案例4  """  sns.stripplot(x="day", y="total_bill", data=tips, jitter=0.3)  plt.show()
import seaborn as sns  import matplotlib.pyplot as plt  #設置風格  sns.set(style="whitegrid")  # 構建數據  tips = sns.load_dataset("tips")  """  案例5:  繪製水平方向的分類散點圖    可以對案例1和案例5 進行比較  """  sns.stripplot(x="total_bill", y="day", data=tips,jitter=True)  plt.show()
import seaborn as sns  import matplotlib.pyplot as plt  #設置風格  sns.set(style="whitegrid")  # 構建數據  tips = sns.load_dataset("tips")  """  案例6:  給數據點繪製輪廓,linewidth值越大,輪廓越粗  """  sns.stripplot(x="total_bill", y="day", data=tips,                jitter=True, linewidth=2)  plt.show()
import seaborn as sns  import matplotlib.pyplot as plt  #設置風格  sns.set(style="whitegrid")  # 構建數據  tips = sns.load_dataset("tips")  """  案例7:  設置hue對每個分組中進行第二次分類(x=sex進行第一次數據分組,  hue=day對每一組進行數據分類)  """  sns.stripplot(x="sex", y="total_bill", hue="day",                data=tips, jitter=True)  plt.show()
import seaborn as sns  import matplotlib.pyplot as plt  #設置風格  sns.set(style="whitegrid")  # 構建數據  tips = sns.load_dataset("tips")  """  案例8:  設置dodge將數據在分類組中分離出來  """  sns.stripplot(x="day", y="total_bill", hue="smoker",                data=tips, jitter=True,                palette="Set2",dodge=True)  plt.show()
import seaborn as sns  import matplotlib.pyplot as plt  #設置風格  sns.set(style="whitegrid")  # 構建數據  tips = sns.load_dataset("tips")  """  案例9:  通過設置order來顯式指定分類順序  order=[欄位變數名1,欄位變數名2,...]  """  sns.stripplot(x="time", y="tip", data=tips,                order=["Dinner", "Lunch"])  plt.show()
import seaborn as sns  import matplotlib.pyplot as plt  #設置風格  sns.set(style="whitegrid")  # 構建數據  tips = sns.load_dataset("tips")  """  案例10:  設置要繪製的點的大小(size)以及點的標記(marker="D")  飽和度alpha  """  sns.stripplot("day", "total_bill", "smoker", data=tips,                palette="Set2", size=20, marker="D",                edgecolor="gray", alpha=.25)  plt.show()
import seaborn as sns  import matplotlib.pyplot as plt  import numpy as np  #設置風格  sns.set(style="whitegrid")  # 構建數據  tips = sns.load_dataset("tips")  """  案例11:  根據數據情況繪製箱圖和分類散點圖  在箱圖上繪製分類散點圖  """  sns.boxplot(x="tip", y="day", data=tips, whis=np.inf)  sns.stripplot(x="tip", y="day", data=tips,                jitter=True, color=".3")  plt.show()
import seaborn as sns  import matplotlib.pyplot as plt  #設置風格  sns.set(style="whitegrid")  # 構建數據  tips = sns.load_dataset("tips")  """  案例10:  根據數據情況繪製小提琴圖和分類散點圖  在小提琴圖上繪製分類散點圖  """  sns.violinplot(x="day", y="total_bill", data=tips,                 inner=None, color=".8")  sns.stripplot(x="day", y="total_bill", data=tips, jitter=True)  plt.show()

案例地址

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

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

更多分享,請關注公眾號