Python箱型图绘制与特征值获取过程解析
作者:wangxiaobei2019 发布时间:2023-09-20 06:22:37
标签:python,箱型,图,绘制,特征值
这篇文章主要介绍了Python箱型图绘制与特征值获取过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
它主要用于反映原始数据分布的特征,还可以进行多组数据分布特征的比较
如何利用Python绘制箱型图
需要的import的包
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties
import numpy as np
import pandas as pd
该函数是绘制多箱型图,且数据长度不一致的情况,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'煤质文件名称', 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()
结果显示
如何获取箱型图特征
"""
【函数说明】获取箱体图特征
【输入】 input_list 输入数据列表
【输出】 out_list:列表的特征[下限,Q1,Q2,Q3,上限] 和 Error_Point_num:异常值数量
【版本】 V1.0.0
【日期】 2019 10 16
"""
def BoxFeature(input_list):
# 获取箱体图特征
percentile = np.percentile(input_list, (25, 50, 75), interpolation='linear')
#以下为箱线图的五个特征值
Q1 = percentile[0]#上四分位数
Q2 = percentile[1]
Q3 = percentile[2]#下四分位数
IQR = Q3 - Q1#四分位距
ulim = Q3 + 1.5*IQR#上限 非异常范围内的最大值
llim = Q1 - 1.5*IQR#下限 非异常范围内的最小值
# llim = 0 if llim < 0 else llim
# out_list = [llim,Q1,Q2,Q3,ulim]
# 统计异常点个数
# 正常数据列表
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
# 特征值保留一位小数
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
来源:https://www.cnblogs.com/wangxiaobei2019/p/11719453.html


猜你喜欢
- 本篇文档旨在介绍如何安装配置基于2台服务器的MySQL集群。并且实现任意一台服务器出现问题或宕机时MySQL依然能够继续运行。注意!虽然这是
- 视频读取视频读取,主要利用VideoCapture类下的方法打开视频并获取视频中的帧,具体示例如下:#include<iostream
- Vignere密码Vignere Cipher包含用于加密和解密的Caesar Cipher算法. Vignere Cipher与Caesa
- 不过,如果您需要查找文档中的一个特定的元素,最有效的方法是 getElementById()。 不过要注意的是使用getElementByI
- Urllib1. Urllib.request.urlopen().read().decode()返回一个二进制的对象,对这个对象进行rea
- 以下是关于小编给大家日常收集整理php正则表达式,具体内容请看下文详解吧$str = preg_replace("/(<a.
- 每个熟悉python的人都知道,python提供给了我们各种各样原生的数据结构,如list、tuple、set、dict等等。这些形形色色的
- 有1张表, Wages 表 ------------------------------------------- Emp_id&
- asp程序出错后,错误提示不是很清楚明白,让人摸不着头脑,用下面方法看看有没有帮助(此法目前只适合除ADO错误外的错误) &nb
- 封装Python将多个值用逗号隔开,进行赋值。会将这些值封装成一个tuple返回#示例a = 1,2type(a)结果:<class
- DataFrame对象的创建,修改,合并import pandas as pdimport numpy as np创建DataFrame对象
- SQL Server ISNULL 不生效原因数据库:SQL Server 2008 R2原始SQL:historyval 字段没有数据显示
- 有一个txt文本如下:151 151 1234561 156421 214156 1523132 031320现希望将两行合并为一行,并将
- 基本使用首先要下载 pymysqlpip install pymsql以下是 pymysql 的基本使用import pymysql# 链接
- //定义一个对象数组 var data = [{ name: "jiang", age: 22 }, { name: &
- Python 函数一、什么是模块化程序设计?在进行程序设计时将一个大程序按照功能划分为若干小程序模块每个小程序模块完成一个确定的功能并在这些
- Celery文档参考:http://docs.jinkan.org/docs/celery/参考文章:https://www.jb51.ne
- 1. 滤波器1.1 什么是滤波器滤波器是对图像做平滑处理 的一种常用工具。平滑处理即在尽可能地保留原图像信息的情况下,对像素值进行微调,使邻
- python的numpy库提供矩阵运算的功能,因此我们在需要矩阵运算的时候,需要导入numpy的包。一、numpy的导入和使用from&nb
- #测试网址: http://localhost/blog/testurl.php?id=5 //获取域名或主机地址 echo $_SERVE