标签:war time com 分享 成绩 默认 user plt launch
1.反映一组数据的分布特征,如:分布是否对称,是否存在离群点
2.对多组数据的分布特征进行比较
3.如果只有一个定量变量,很少用箱线图去看数据的分布,而是用直方图去观察。一般都要跟其余的定性变量做分组箱线图,可以起对比作用。(key)
针对连续型变量
只有一个变量、一组的数据(1个变量,0个定性变量),比如:学生的成绩情况
只有一个变量、多组数据(1个变量,1个定性变量[班级]),比如:1、2、3班学生的成绩情况
只有一个变量、多组数据(1个变量,多个定性变量[年级、班级]),比如:初一、初二、初三的1、2、3班学生的成绩情况
多个变量同理,看Y轴数据大小才相近才采用此用法
1.箱子的大小取决于数据的四分位距,即IQR = Q3 - Q1(Q3: 75%分位数 , Q1: 25%分位数 , Q3和Q1为四分位数)。50%的数据集中于箱体,若箱体太大即数据分布离散,数据波动较大,箱体小表示数据集中。
2.箱子的上边为上四分位数Q3,下边为下四分位数Q1,箱体中的横线为中位数Q2(50%分位数)
3.箱子的上触须为数据的最大值Max,下触须为数据的最小值Min(注意是非离群点的最大最小值,称为上下相邻值)
4.若数据值 > Q3+1.5 * IQR(上限值) 或 数据值 < Q1-1.5 * IQR(下限值) ,均视为异常值。数据值 > Q3+3 * IQR 或 数据值 < Q1-3 * IQR ,均视为极值。在实际应用中,不会显示异常值与极值的界限,而且一般统称为异常值。
5.偏度:
plt.boxplot(x, notch=None, sym=None, vert=None, whis=None, positions=None, widths=None, patch_artist=None, bootstrap=None, usermedians=None, conf_intervals=None, meanline=None, showmeans=None, showcaps=None, showbox=None, showfliers=None, boxprops=None, labels=None, flierprops=None, medianprops=None, meanprops=None, capprops=None, whiskerprops=None, manage_xticks=True, autorange=False, zorder=None, hold=None, data=None)
import numpy as np
import matplotlib.pyplot as plt
plt.style.use("ggplot")
plt.rcParams["font.sans-serif"]=["SimHei"] #用来正常显示中文标签
plt.rcParams["axes.unicode_minus"]=False #用来正常显示负号
np.random.seed(500)
data = np.random.normal(size=(1000,2),loc=0,scale=1)
plt.boxplot(data,labels=list("AB"),widths=0.5)
plt.show()
借用kaggle泰坦尼克号生存预测数据,船费一项作为例子
import pandas as pd
import numpy as np
df = pd.read_csv(r"G:\Kaggle\Titanic\train.csv")
plt.boxplot("Fare",data=df)
plt.show()
用seaborn来画
import seaborn as sns
sns.boxplot(y="Fare",data=df) #不注明y轴的话,箱线图是横躺着的
plt.show()
箱体很扁,异常值特别突出,难以看出数据的分布情况。留意到票价均为正数,我们选择将票价做对数变换。否则就换另一种图形来呈现数据,箱线图不行。
x = df.Fare
df["new_Fare"] = np.log(x)
plt.boxplot(x="new_Fare",data=df)
plt.show()
F:\Anaconda\lib\site-packages\ipykernel_launcher.py:2: RuntimeWarning: divide by zero encountered in log
sns.boxplot(y="new_Fare",data=df) #不注明y轴的话,箱线图是横躺着的
plt.show()
这样就好看多了,看得出中位线、数据分布情况,异常值也没这么凸显了。
在一个定量变量的基础上,加入Pclass定性变量进行分组
import seaborn as sns
sns.boxplot(x="Pclass",y="new_Fare",data=df)
plt.show()
在一个定量变量、一个定性变量的基础上,再加入一个定性变量Survived进行分组
sns.boxplot(x="Pclass",y="new_Fare",hue="Survived",data=df)
plt.show()
今天先作此笔记,后续再补充
标签:war time com 分享 成绩 默认 user plt launch
原文地址:https://www.cnblogs.com/wyy1480/p/9526264.html