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通过websocket与js客户端通信示例分析
Jun 25 Python
Python中的引用和拷贝浅析
Nov 22 Python
Python描述器descriptor详解
Feb 03 Python
Python基于回溯法子集树模板解决最佳作业调度问题示例
Sep 08 Python
Python实现二维数组输出为图片
Apr 03 Python
Python pyinotify模块实现对文档的实时监控功能方法
Oct 13 Python
Python3 串口接收与发送16进制数据包的实例
Jun 12 Python
详解将Pandas中的DataFrame类型转换成Numpy中array类型的三种方法
Jul 06 Python
Python利用PyExecJS库执行JS函数的案例分析
Dec 18 Python
wxpython自定义下拉列表框过程图解
Feb 14 Python
详解django中Template语言
Feb 22 Python
一行代码python实现文件共享服务器
Apr 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
推荐一款PHP+jQuery制作的列表分页的功能模块
2014/10/14 PHP
PHP生成静态HTML文档实现代码
2016/06/23 PHP
PHP cURL获取微信公众号access_token的实例
2018/04/28 PHP
CodeIgniter框架实现的整合Smarty引擎DEMO示例
2019/03/28 PHP
一实用的实现table排序的Javascript类库
2007/09/12 Javascript
禁止ajax缓存获取程序最新数据的方法
2013/11/19 Javascript
js使用循环清空某个div中的input标签值
2014/09/29 Javascript
原生和jQuery的ajax用法详解
2017/01/23 Javascript
Node.js环境下Koa2添加travis ci持续集成工具的方法
2017/06/19 Javascript
vue-devtools的安装步骤
2018/04/23 Javascript
微信小程序使用swiper组件实现类3D轮播图
2018/08/29 Javascript
vue项目前端埋点的实现
2019/03/06 Javascript
一文快速了解JQuery中的AJAX
2019/05/31 jQuery
浅谈layui 数据表格前后台传值的问题
2019/09/12 Javascript
layui 解决富文本框form表单提交为空的问题
2019/10/26 Javascript
js构造函数constructor和原型prototype原理与用法实例分析
2020/03/02 Javascript
Vue点击切换Class变化,实现Active当前样式操作
2020/07/17 Javascript
基于javascript实现放大镜特效
2020/12/03 Javascript
js动态生成表格(节点操作)
2021/01/12 Javascript
[00:32]DOTA2上海特级锦标赛 Ehome战队宣传片
2016/03/03 DOTA
简单介绍Python中的filter和lambda函数的使用
2015/04/07 Python
Python中用于转换字母为小写的lower()方法使用简介
2015/05/19 Python
APIStar:一个专为Python3设计的API框架
2018/09/26 Python
Python提取支付宝和微信支付二维码的示例代码
2019/02/15 Python
对Python中class和instance以及self的用法详解
2019/06/26 Python
美国床垫和床上用品公司:Nest Bedding
2017/06/12 全球购物
StubHub德国:购买和出售门票
2017/09/06 全球购物
英国领先的男装设计师服装购物网站:Mainline Menswear
2018/02/04 全球购物
Java程序开发中如何应用线程
2016/03/03 面试题
校园歌手大赛策划书
2014/01/17 职场文书
《两只鸟蛋》教学反思
2014/02/10 职场文书
文明餐桌行动实施方案
2014/02/19 职场文书
管理部副部长岗位职责范文
2014/03/09 职场文书
党员干部群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
教师查摆问题自查报告
2014/10/11 职场文书
Centos系统通过Docker安装并搭建MongoDB数据库
2022/04/12 MongoDB