Python中箱线图的分析以及生成
一、利用matplotlib包生成箱线图
- Python中存在创建箱线图的第三方包matplotlib,在这里我们具体调用其中的pyplot类
import matplotlib.pyplot as plt
- 直接使用方法boxplot即壳直接生成箱线图
plt.boxplot(data)
在这里我以加利福利亚房屋数据为例生成一副箱线图
在生成箱线图时需要对数据进行归一化,不然生成的箱线图会出现异常现象。
# @File : 房价数据回归分析.py
# @Author : strive_yang
# @Time : 2022/3/25 16:31
# @Software : PyCharm
from sklearn.datasets import fetch_california_housing
import matplotlib.pyplot as plt
import pandas as pd
from sklearn.preprocessing import MinMaxScaler
import numpy as np
# def Get_Data(): # 获得房屋数据并存储
# data_set=fetch_california_housing().data # 获得自带的加利福利亚的房屋数据
# data_set=pd.DataFrame(data_set) # 将数据集转化格式
# data_set.to_csv("california_house_data.csv",index=False)
def Data_Normalization(data): # 数据归一化
for i in data.columns:
scaler = MinMaxScaler()
data[i]=scaler.fit_transform(data[i].values.reshape(-1,1))
# reshape(-1,1)转换为二维数据存入二维表
def Draw_Pir(data):
plt.boxplot(data)
plt.show()
if __name__=="__main__":
# house_data=Get_Data()
house_data=pd.read_csv("california_house_data.csv")
Data_Normalization(house_data)
Draw_Pir(house_data)
二、分析箱线图
- IQR=75%分位数(Q3)-25%分位数(Q1)
- 下边缘=Q1-1.5IQR
- 上边缘=Q3+1.5IQR
ps:上边缘并不是表示的最大值