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求解平方根的方法
Mar 11 Python
Python中用Decorator来简化元编程的教程
Apr 13 Python
使用Python构建Hopfield网络的教程
Apr 14 Python
在Python中用keys()方法返回字典键的教程
May 21 Python
Python+OpenCV目标跟踪实现基本的运动检测
Jul 10 Python
Python实现识别图片内容的方法分析
Jul 11 Python
pandas读取CSV文件时查看修改各列的数据类型格式
Jul 07 Python
简单分析python的类变量、实例变量
Aug 23 Python
详解使用django-mama-cas快速搭建CAS服务的实现
Oct 30 Python
Python中低维数组填充高维数组的实现
Dec 02 Python
关于numpy.where()函数 返回值的解释
Dec 06 Python
使用Python爬虫爬取小红书完完整整的全过程
Jan 19 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
下载文件的点击数回填
2006/10/09 PHP
php 地区分类排序算法
2013/07/01 PHP
叫你如何修改Nginx与PHP的文件上传大小限制
2014/09/10 PHP
PHP统计目录中文件以及目录中目录大小的方法
2016/01/09 PHP
jQuery 性能优化指南(2)
2009/05/21 Javascript
浅谈javascript属性onresize
2015/04/20 Javascript
js获取form的方法
2015/05/06 Javascript
Javascript的无new构建实例详解
2016/05/15 Javascript
AngularJS基础 ng-submit 指令简单示例
2016/08/03 Javascript
JavaScript 闭包详细介绍
2016/09/28 Javascript
nodejs获取微信小程序带参数二维码实现代码
2017/04/12 NodeJs
jQuery扩展_动力节点Java学院整理
2017/07/05 jQuery
javascript将url解析为json格式的两种方法
2017/08/18 Javascript
jquery中有哪些api jQuery主要API
2017/11/20 jQuery
vuejs实现递归树型菜单组件
2018/01/13 Javascript
在Create React App中使用CSS Modules的方法示例
2019/01/15 Javascript
小程序关于请求同步的总结
2019/05/05 Javascript
详解vue 动态加载并注册组件且通过 render动态创建该组件
2019/05/30 Javascript
详解elementui之el-image-viewer(图片查看器)
2019/08/30 Javascript
echarts实现晶体球面投影的实例教程
2020/10/10 Javascript
[43:35]TI4 循环赛第二日Liquid vs Fnatic
2014/07/11 DOTA
[49:41]NB vs NAVI Supermajor小组赛A组 BO3 第一场 6.2
2018/06/03 DOTA
Python实现网络端口转发和重定向的方法
2016/09/19 Python
解决django中form表单设置action后无法回到原页面的问题
2020/03/13 Python
python opencv pytesseract 验证码识别的实现
2020/08/28 Python
UI自动化定位常用实现方法代码示例
2020/10/27 Python
浅谈Selenium 控制浏览器的常用方法
2020/12/04 Python
Python实现图片指定位置加图片水印(附Pyinstaller打包exe)
2021/03/04 Python
法国春天百货官网:Printemps.com
2020/06/29 全球购物
银行柜员应聘推荐信范文
2013/11/24 职场文书
应聘编辑职位自荐信范文
2014/01/05 职场文书
社区十八大感言
2014/01/19 职场文书
高考寄语大全
2014/04/08 职场文书
护理工作个人总结
2015/03/03 职场文书
python中requests库+xpath+lxml简单使用
2021/04/29 Python
Python3使用Qt5来实现简易的五子棋小游戏
2022/05/02 Python