小提琴圖violinplot
小提琴圖為箱線圖的一個變種,它將分布的核密度估計曲線與箱線圖結合在一起。最外圍的形狀展示了該位置的密度,這樣就可以知道數據在哪里分布密度高,哪里分布密度低。中間白點表示中位數,黑色粗條(黑箱)表示四分位數范圍(25%分位數和75%分位數),從其延伸的幼細黑線代表 95% 置信區間。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
plt.rcParams["font.sans-serif"]=["SimHei"] #用來正常顯示中文標簽
df = pd.read_csv(r"G:\Kaggle\Titanic\train.csv") #導入數據
對連續變量年齡做基礎分析
僅有定量變量:年齡因素
sns.violinplot(y="Age",data=df,palette="Set3")
plt.title("乘客年齡分布情況",fontsize="xx-large",color="white",backgroundcolor="b") #圖表標題設置
#參數說明:
# fontsize 設置字體大小,默認12,可選參數 ['xx-small', 'x-small', 'small', 'medium', 'large','x-large', 'xx-large']
# color 字體顏色
# fontweight設置字體粗細,可選參數 ['light', 'normal', 'medium', 'semibold', 'bold', 'heavy', 'black']
# fontstyle設置字體類型,可選參數[ 'normal' | 'italic' | 'oblique' ],italic斜體,oblique傾斜
# verticalalignment設置水平對齊方式 ,可選參數 : 'center' , 'top' , 'bottom' ,'baseline'
# horizontalalignment設置垂直對齊方式,可選參數:left,right,center
# alpha透明度,參數值0至1之間
# backgroundcolor標題背景顏色
# bbox給標題增加外框 ,常用參數如下:
# boxstyle方框外形
# facecolor(簡寫fc)背景顏色
# edgecolor(簡寫ec)邊框線條顏色
# edgewidth邊框線條大小
plt.show() #顯示圖形
年齡相對集中於20-30之間,此處的密度最大。年齡在70-80之間的都較少。
在年齡因素基礎上,加入一個定性變量:船艙等級
sns.violinplot(x="Pclass",y="Age",data=df,palette="Set3")
plt.title("不同船艙等級乘客的年齡分布情況",fontsize="xx-large")
plt.show()
1.年齡的中位數:一等艙 > 二等艙 > 三等艙
2.在人口最集中的段位,三等艙是所有船艙中最年輕的,緊接着是二等艙,最后是一等艙。也反映了財富的積累跟年齡是掛鈎的。
在年齡、船艙等級(一個定量、一個定性)因素的基礎上,加入另一個定性變量:生存與否
sns.violinplot(x="Pclass",y="Age",hue="Survived",data=df,palette="Set3")
plt.title("各船艙等級、生存與否船員的年齡分布情況",fontsize="xx-large")
plt.show()
- 另一種呈現方式
sns.violinplot(x="Pclass",y="Age",hue="Survived",data=df,palette="Set3",split=True)
plt.title("各船艙等級、生存與否船員的年齡分布情況",fontsize="xx-large")
plt.show()