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列出目录下指定文件与子目录的方法
Jul 03 Python
Python实现爬取逐浪小说的方法
Jul 07 Python
Python字典循环添加一键多值的用法实例
Jan 20 Python
Python实现的合并两个有序数组算法示例
Mar 04 Python
python字典的setdefault的巧妙用法
Aug 07 Python
Python Django实现layui风格+django分页功能的例子
Aug 29 Python
python 模拟贷款卡号生成规则过程解析
Aug 30 Python
Python的缺点和劣势分析
Nov 19 Python
python 画条形图(柱状图)实例
Apr 24 Python
如何把外网python虚拟环境迁移到内网
May 18 Python
Python抓包并解析json爬虫的完整实例代码
Nov 03 Python
Python ellipsis 的用法详解
Nov 20 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 危险函数解释 分析
2009/04/22 PHP
php引用地址改变变量值的问题
2012/03/23 PHP
WordPress中制作导航菜单的PHP核心方法讲解
2015/12/11 PHP
php生成网页桌面快捷方式
2017/05/05 PHP
JavaScript初学者需要了解10个小技巧
2010/08/25 Javascript
根据身份证号自动输出相关信息(籍贯,出身日期,性别)
2013/11/15 Javascript
Javascript基础教程之for循环
2015/01/18 Javascript
通过实例理解javascript中没有函数重载的概念
2015/06/03 Javascript
JavaScript如何动态创建table表格
2020/08/02 Javascript
JS区分浏览器页面是刷新还是关闭
2016/04/17 Javascript
JavaScript每天必学之数组和对象部分
2016/09/17 Javascript
js实现随机点名小功能
2017/08/17 Javascript
vue mint-ui学习笔记之picker的使用
2017/10/11 Javascript
Vue-Router模式和钩子的用法
2018/02/28 Javascript
vue elementUI tree树形控件获取父节点ID的实例
2018/09/12 Javascript
30分钟用Node.js构建一个API服务器的步骤详解
2019/05/24 Javascript
Vue中的循环及修改差值表达式的方法
2019/08/29 Javascript
基于Vue2实现移动端图片上传、压缩、拖拽排序、拖拽删除功能
2021/01/05 Vue.js
测试、预发布后用python检测网页是否有日常链接
2014/06/03 Python
python网络编程学习笔记(四):域名系统
2014/06/09 Python
python复制文件的方法实例详解
2015/05/22 Python
Python实现KNN邻近算法
2021/01/28 Python
Python 2.7中文显示与处理方法
2018/07/16 Python
PYTHON如何读取和写入EXCEL里面的数据
2019/10/28 Python
解决Python 异常TypeError: cannot concatenate 'str' and 'int' objects
2020/04/08 Python
Anaconda3中的Jupyter notebook添加目录插件的实现
2020/05/18 Python
Python如何把十进制数转换成ip地址
2020/05/25 Python
用python爬虫批量下载pdf的实现
2020/12/01 Python
python asyncio 协程库的使用
2021/01/21 Python
CSS3让登陆面板3D旋转起来
2016/05/03 HTML / CSS
KIKO MILANO荷兰网上商店:意大利专业化妆品品牌
2017/05/12 全球购物
Shell编程面试题
2016/05/29 面试题
家长高考寄语
2015/02/27 职场文书
施工安全员岗位职责
2015/04/11 职场文书
值班管理制度范本
2015/08/06 职场文书
你真的了解PHP中的引用符号(&)吗
2021/05/12 PHP