Python箱型图绘制与特征值获取过程解析


Posted in Python onOctober 22, 2019

这篇文章主要介绍了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()

结果显示

Python箱型图绘制与特征值获取过程解析

如何获取箱型图特征

"""
【函数说明】获取箱体图特征
【输入】 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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python删除指定目录下过期文件的2个脚本分享
Apr 10 Python
Python获取央视节目单的实现代码
Jul 25 Python
Python实现将xml导入至excel
Nov 20 Python
Python黑魔法Descriptor描述符的实例解析
Jun 02 Python
python Pygame的具体使用讲解
Nov 03 Python
Python模块搜索路径代码详解
Jan 29 Python
python XlsxWriter模块创建aexcel表格的实例讲解
May 03 Python
Python 文本文件内容批量抽取实例
Dec 10 Python
python 函数的缺省参数使用注意事项分析
Sep 17 Python
PyCharm使用之配置SSH Interpreter的方法步骤
Dec 26 Python
python多项式拟合之np.polyfit 和 np.polyld详解
Feb 18 Python
Tensorflow tf.tile()的用法实例分析
May 22 Python
Python使用贪婪算法解决问题
Oct 22 #Python
python元组和字典的内建函数实例详解
Oct 22 #Python
Python List列表对象内置方法实例详解
Oct 22 #Python
Python序列对象与String类型内置方法详解
Oct 22 #Python
Python基本语法之运算符功能与用法详解
Oct 22 #Python
基于Python实现拆分和合并GIF动态图
Oct 22 #Python
python  logging日志打印过程解析
Oct 22 #Python
You might like
锁定年轻人的双倍活力 星巴克推出星倍醇即饮浓咖啡
2021/03/03 咖啡文化
php的curl实现get和post的代码
2008/08/23 PHP
php实现无限级分类实现代码(递归方法)
2011/01/01 PHP
解析curl提交GET,POST,Cookie的简单方法
2013/06/29 PHP
php修改指定文件后缀的方法
2014/09/11 PHP
CI框架学习笔记(二) -入口文件index.php
2014/10/27 PHP
如何使用纯PHP实现定时器任务(Timer)
2015/07/31 PHP
WordPress中用于检索模版的相关PHP函数使用解析
2015/12/15 PHP
PHP以json或xml格式返回请求数据的方法
2018/05/31 PHP
javascript Math.random()随机数函数
2009/11/04 Javascript
JS控制阿拉伯数字转为中文大写示例代码
2013/09/04 Javascript
js实现checkbox全选和反选示例
2014/05/01 Javascript
BootStrap Table 获取同行不同列元素的方法
2016/12/19 Javascript
浅谈jQuery中事情的动态绑定
2017/02/12 Javascript
JS实现的简单四则运算计算器功能示例
2017/09/27 Javascript
Vue2.x Todo之自定义指令实现自动聚焦的方法
2019/01/08 Javascript
VUE搭建手机商城心得和遇到的坑
2019/02/21 Javascript
微信小程序与公众号实现数据互通的方法
2019/07/25 Javascript
解决layui数据表格排序图标被超出的表头挤出去的问题
2019/09/19 Javascript
原生js生成图片验证码
2020/10/11 Javascript
Django Admin实现上传图片校验功能
2016/03/06 Python
tensorflow TFRecords文件的生成和读取的方法
2018/02/06 Python
PyQt5每天必学之滑块控件QSlider
2018/04/20 Python
python traceback捕获并打印异常的方法
2018/08/31 Python
python游戏地图最短路径求解
2019/01/16 Python
python制作简单五子棋游戏
2019/06/18 Python
python 通过文件夹导入包的操作
2020/06/01 Python
Django-Scrapy生成后端json接口的方法示例
2020/10/06 Python
html5的画布canvas——画出简单的矩形、三角形实例代码
2013/06/09 HTML / CSS
Original Penguin美国官网:布拉德皮特、强尼德普喜爱的服装品牌
2016/10/25 全球购物
火箭队口号
2014/06/18 职场文书
给老婆的检讨书1000字
2015/01/01 职场文书
幼儿园感谢信
2015/01/21 职场文书
2016年11月份红领巾广播稿
2015/12/21 职场文书
基于Nginx实现限制某IP短时间访问次数
2021/03/31 Servers
Elasticsearch 数据类型及管理
2022/04/19 Python