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 元组(Tuple)操作详解
Mar 11 Python
python中sets模块的用法实例
Sep 30 Python
python使用multiprocessing模块实现带回调函数的异步调用方法
Apr 18 Python
Python模拟鼠标点击实现方法(将通过实例自动化模拟在360浏览器中自动搜索python)
Aug 23 Python
python中使用正则表达式的连接符示例代码
Oct 10 Python
python matplotlib绘图,修改坐标轴刻度为文字的实例
May 25 Python
Pycharm 创建 Django admin 用户名和密码的实例
May 30 Python
使用PYTHON解析Wireshark的PCAP文件方法
Jul 23 Python
python自动结束mysql慢查询会话的实例代码
Oct 27 Python
python GUI库图形界面开发之PyQt5窗口布局控件QStackedWidget详细使用方法
Feb 27 Python
PyQt5 文本输入框自动补全QLineEdit的实现示例
May 13 Python
Python中常见的反爬机制及其破解方法总结
Jun 10 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
PHP与SQL注入攻击[三]
2007/04/17 PHP
php 数组的指针操作实现代码
2011/02/08 PHP
学习php设计模式 php实现适配器模式
2015/12/07 PHP
php实现图片上传时添加文字和图片水印技巧
2020/04/18 PHP
PHP上传图片、删除图片简单实例
2016/11/12 PHP
php+websocket 实现的聊天室功能详解
2020/05/27 PHP
javascript 类定义的4种方法
2009/09/12 Javascript
document.createElement()用法及注意事项(ff下不兼容)
2013/03/13 Javascript
jquery使用jquery.zclip插件复制对象的实例教程
2013/12/04 Javascript
javascript操作excel生成报表全攻略
2014/05/04 Javascript
Node.js文件操作详解
2014/08/16 Javascript
DOM操作原生js 的bug,使用jQuery 可以消除的解决方法
2016/09/04 Javascript
jQuery常见面试题之DOM操作详析
2017/07/05 jQuery
工作中常用到的ES6语法
2018/09/04 Javascript
详谈Object.defineProperty 及实现数据双向绑定
2020/07/18 Javascript
Vue跨域请求问题解决方案过程解析
2020/08/07 Javascript
Vue利用localStorage本地缓存使页面刷新验证码不清零功能的实现
2020/09/04 Javascript
Vertx基于EventBus发送接受自定义对象
2020/11/16 Javascript
学生信息管理系统Python面向对象版
2019/01/30 Python
python通过txt文件批量安装依赖包的实现步骤
2019/08/13 Python
PyCharm+Pipenv虚拟环境开发和依赖管理的教程详解
2020/04/16 Python
Python pip安装模块提示错误解决方案
2020/05/22 Python
浅谈keras 的抽象后端(from keras import backend as K)
2020/06/16 Python
python算的上脚本语言吗
2020/06/22 Python
python 实现一个图形界面的汇率计算器
2020/11/09 Python
Python爬虫爬取微博热搜保存为 Markdown 文件的源码
2021/02/22 Python
pandas数据分组groupby()和统计函数agg()的使用
2021/03/04 Python
李维斯牛仔裤荷兰官方网站:Levi’s NL
2020/08/23 全球购物
机械专业应届生求职信
2013/12/12 职场文书
目标责任书范本
2014/04/16 职场文书
2014年师德师风工作总结
2014/11/25 职场文书
2015年幼儿园教研活动总结
2015/03/25 职场文书
2015年乡镇工作总结范文
2015/04/22 职场文书
士兵突击观后感
2015/06/16 职场文书
解决Pytorch dataloader时报错每个tensor维度不一样的问题
2021/05/28 Python
Python中OpenCV实现查找轮廓的实例
2021/06/08 Python