數據可視化(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)
參數解讀

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
整理製作:數據分析與可視化學研社

