Python箱型圖繪制與特征值獲取過程解析
這篇文章主要介紹了Python箱型圖繪制與特征值獲取過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
它主要用于反映原始數(shù)據(jù)分布的特征,還可以進(jìn)行多組數(shù)據(jù)分布特征的比較

如何利用Python繪制箱型圖
需要的import的包
import matplotlib.pyplot as plt from matplotlib.font_manager import FontProperties import numpy as np import pandas as pd
該函數(shù)是繪制多箱型圖,且數(shù)據(jù)長度不一致的情況,input_dict = {filename1:[a1,a2,...,an],filename2:[b1,b2,...,bn]...} Y_label = 'Img_name'
def DrawMultBoxPic(input_dict,Y_label):
dict_list_length = []
for item in input_dict:
temp_length = len(input_dict[item])
dict_list_length.append(temp_length)
# 獲取最長列表長度
max_length = max(dict_list_length)
# 每個列表在后面追加None
for item in input_dict:
diff_length = max_length - len(input_dict[item])
if diff_length > 0:
for i in range(diff_length):
input_dict[item].append(None)
# else:
# print('{}文件列表長度最長'.format(item))
# 繪制箱型圖
zhfont = FontProperties(fname='C:/Windows/Fonts/simsun.ttc', size=16)
data = pd.DataFrame.from_dict(input_dict)
data.boxplot(widths=0.3,figsize=(30,15),fontsize=16)
plt.xlabel(u'煤質(zhì)文件名稱', fontproperties=zhfont)
plt.ylabel(Y_label, fontproperties=zhfont)
plt.title(Y_label, fontproperties=zhfont)
# plt.axis([0, 6, 0, 90])
plt.grid(axis='y', ls='--', lw=2, color='gray', alpha=0.4)
plt.grid(axis='x', ls='--', lw=2, color='gray', alpha=0.4)
imgname = 'E:\\' + Y_label + '.png'
plt.savefig(imgname, bbox_inches = 'tight')
# plt.show()
結(jié)果顯示

如何獲取箱型圖特征
"""
【函數(shù)說明】獲取箱體圖特征
【輸入】 input_list 輸入數(shù)據(jù)列表
【輸出】 out_list:列表的特征[下限,Q1,Q2,Q3,上限] 和 Error_Point_num:異常值數(shù)量
【版本】 V1.0.0
【日期】 2019 10 16
"""
def BoxFeature(input_list):
# 獲取箱體圖特征
percentile = np.percentile(input_list, (25, 50, 75), interpolation='linear')
#以下為箱線圖的五個特征值
Q1 = percentile[0]#上四分位數(shù)
Q2 = percentile[1]
Q3 = percentile[2]#下四分位數(shù)
IQR = Q3 - Q1#四分位距
ulim = Q3 + 1.5*IQR#上限 非異常范圍內(nèi)的最大值
llim = Q1 - 1.5*IQR#下限 非異常范圍內(nèi)的最小值
# llim = 0 if llim < 0 else llim
# out_list = [llim,Q1,Q2,Q3,ulim]
# 統(tǒng)計異常點個數(shù)
# 正常數(shù)據(jù)列表
right_list = []
Error_Point_num = 0
value_total = 0
average_num = 0
for item in input_list:
if item < llim or item > ulim:
Error_Point_num += 1
else:
right_list.append(item)
value_total += item
average_num += 1
average_value = value_total/average_num
# 特征值保留一位小數(shù)
out_list = [average_value,min(right_list), Q1, Q2, Q3, max(right_list)]
# print(out_list)
out_list = Save1point(out_list)
return out_list,Error_Point_num
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python運行報錯UnicodeDecodeError的解決方法
本文給大家分享的是在Python項目中經(jīng)常遇到的關(guān)于編碼問題的一個小bug的解決方法以及分析方法,有相同遭遇的小伙伴可以來參考下2016-06-06
使用Pyinstaller轉(zhuǎn)換.py文件為.exe可執(zhí)行程序過程詳解
這篇文章主要介紹了使用Pyinstaller轉(zhuǎn)換.py文件為.exe可執(zhí)行程序過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-08-08
Python Request類源碼實現(xiàn)方法及原理解析
這篇文章主要介紹了Python Request類源碼實現(xiàn)方法及原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-08-08
在Python運行時動態(tài)查看進(jìn)程內(nèi)部信息的方法
今天小編就為大家分享一篇在Python運行時動態(tài)查看進(jìn)程內(nèi)部信息的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-02-02
Python用于學(xué)習(xí)重要算法的模塊pygorithm實例淺析
這篇文章主要介紹了Python用于學(xué)習(xí)重要算法的模塊pygorithm,結(jié)合實例形式簡單分析了pygorithm模塊的功能、算法調(diào)用、源碼獲取、時間復(fù)雜度計算等相關(guān)操作技巧,需要的朋友可以參考下2018-08-08
Pandas實現(xiàn)groupby分組統(tǒng)計的實踐
本文主要介紹了Pandas實現(xiàn)groupby分組統(tǒng)計的實踐,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-01-01

