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字符串替换示例
Apr 24 Python
Django中实现一个高性能计数器(Counter)实例
Jul 09 Python
Python中处理字符串之endswith()方法的使用简介
May 18 Python
Python实现数据库编程方法详解
Jun 09 Python
python决策树之C4.5算法详解
Dec 20 Python
python+matplotlib绘制旋转椭圆实例代码
Jan 12 Python
Python各类图像库的图片读写方式总结(推荐)
Feb 23 Python
python之DataFrame实现excel合并单元格
Feb 22 Python
Django 对IP访问频率进行限制的例子
Aug 30 Python
Python log模块logging记录打印用法解析
Jan 20 Python
python 如何利用argparse解析命令行参数
Sep 11 Python
Python提取PDF指定内容并生成新文件
Jun 09 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使用gettimeofday函数返回当前时间并存放在关联数组里
2015/03/19 PHP
PHP的Yii框架中Model模型的学习教程
2016/03/29 PHP
浅析PHP类的反射来实现依赖注入过程
2018/02/06 PHP
PHP扩展安装方法步骤解析
2020/11/24 PHP
jQuery结合CSS制作漂亮的select下拉菜单
2015/05/03 Javascript
再谈Javascript中的异步以及如何异步
2016/08/19 Javascript
AngularJs concepts详解及示例代码
2016/09/01 Javascript
基于jquery实现的鼠标悬停提示案例
2016/12/11 Javascript
nodejs入门教程六:express模块用法示例
2017/04/24 NodeJs
微信小程序点击控件修改样式实例详解
2017/07/07 Javascript
jQuery选择器中的特殊符号处理方法
2017/09/08 jQuery
angular2 ng2 @input和@output理解及示例
2017/10/10 Javascript
20行JS代码实现粘贴板复制功能
2018/02/06 Javascript
Vue.directive 自定义指令的问题小结
2018/03/04 Javascript
详解nodejs通过响应回写的方式渲染页面资源
2018/04/07 NodeJs
jquery.onoff实现简单的开关按钮功能(推荐)
2018/05/24 jQuery
JavaScript模板引擎实现原理实例详解
2018/12/14 Javascript
node.js使用stream模块实现自定义流示例
2020/02/13 Javascript
vue实现给div绑定keyup的enter事件
2020/07/31 Javascript
js实现数字跳动到指定数字
2020/08/25 Javascript
Python创建对称矩阵的方法示例【基于numpy模块】
2017/10/12 Python
python实现txt文件格式转换为arff格式
2018/05/31 Python
利用python GDAL库读写geotiff格式的遥感影像方法
2018/11/29 Python
numpy数组之存取文件的实现示例
2019/05/24 Python
Python FTP文件定时自动下载实现过程解析
2019/11/12 Python
Python 生成一个从0到n个数字的列表4种方法小结
2019/11/28 Python
Python netmiko模块的使用
2020/02/14 Python
Python中使用filter过滤列表的一个小技巧分享
2020/05/02 Python
python遍历路径破解表单的示例
2020/11/21 Python
详解pycharm的python包opencv(cv2)无代码提示问题的解决
2021/01/29 Python
什么是重载?CTS、CLS和CLR分别做何解释
2012/05/06 面试题
介绍一下Linux中的链接
2016/05/28 面试题
三分钟演讲稿事例
2014/03/03 职场文书
教师节活动总结
2014/08/29 职场文书
财务会计求职信范文
2015/03/20 职场文书
婚育证明格式
2015/06/17 职场文书