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 相关文章推荐
2款Python内存检测工具介绍和使用方法
Jun 01 Python
Python编程中使用Pillow来处理图像的基础教程
Nov 20 Python
Go/Python/Erlang编程语言对比分析及示例代码
Apr 23 Python
matplotlib给子图添加图例的方法
Aug 03 Python
使用pip发布Python程序的方法步骤
Oct 11 Python
python re库的正则表达式入门学习教程
Mar 08 Python
如何通过雪花算法用Python实现一个简单的发号器
Jul 03 Python
Python操作excel的方法总结(xlrd、xlwt、openpyxl)
Sep 02 Python
python打印异常信息的两种实现方式
Dec 24 Python
pyftplib中文乱码问题解决方案
Jan 11 Python
Python sqlite3查询操作过程解析
Feb 20 Python
matplotlib subplot绘制多个子图的方法示例
Jul 28 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实现阳历阴历互转的方法
2015/10/28 PHP
Laravel框架使用Seeder实现自动填充数据功能
2018/06/13 PHP
基于php伪静态的实现方法解析
2020/07/31 PHP
JavaScript 申明函数的三种方法 每个函数就是一个对象(一)
2009/12/04 Javascript
js中document.write使用过程中的一点疑问解答
2014/03/20 Javascript
Jquery节点遍历next与nextAll方法使用示例
2014/07/22 Javascript
javascript获取dom的下一个节点方法
2014/09/05 Javascript
sogou地图API用法实例教程
2014/09/11 Javascript
浅析JavaScript中浏览器的兼容问题
2016/04/19 Javascript
node.js实现快速截图
2016/08/27 Javascript
利用AngularJs实现京东首页轮播图效果
2016/09/08 Javascript
jQuery实现图片轮播效果代码
2016/09/27 Javascript
关于微信jssdk实现多图片上传的一点心得分享
2016/12/13 Javascript
基于Vue如何封装分页组件
2016/12/16 Javascript
jQuery实现select模糊查询(反射机制)
2017/01/14 Javascript
详谈表单格式化插件jquery.serializeJSON
2017/06/23 jQuery
探索webpack模块及webpack3新特性
2017/09/18 Javascript
seajs中模块依赖的加载处理实例分析
2017/10/10 Javascript
微信小程序实现图片放大预览功能
2020/10/22 Javascript
JavaScript数据结构与算法之队列原理与用法实例详解
2017/11/22 Javascript
详解Vue项目中出现Loading chunk {n} failed问题的解决方法
2018/09/14 Javascript
javascript实现手动点赞效果
2019/04/09 Javascript
Python实现的直接插入排序算法示例
2018/04/29 Python
详解用python生成随机数的几种方法
2019/08/04 Python
Python类成员继承重写的实现
2020/09/16 Python
html5之Canvas路径绘图、坐标变换应用实例
2012/12/26 HTML / CSS
澳大利亚实惠时尚女装商店:Katies
2019/06/16 全球购物
开学季活动策划方案
2014/02/28 职场文书
党的群众路线教育实践活动心得体会900字
2014/03/07 职场文书
《大海那边》教学反思
2014/04/09 职场文书
三年级评语大全
2014/04/23 职场文书
2014年小学英语教师工作总
2014/12/03 职场文书
公司车辆管理制度
2015/08/04 职场文书
SQL中的三种去重方法小结
2021/11/01 SQL Server
Android开发手册TextInputLayout样式使用示例
2022/06/10 Java/Android
MySQL详细讲解变量variables的用法
2022/06/21 MySQL