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和GO语言实现的消息摘要算法示例
Mar 10 Python
Python中实现变量赋值传递时的引用和拷贝方法
Apr 29 Python
Sanic框架异常处理与中间件操作实例分析
Jul 16 Python
pandas.DataFrame的pivot()和unstack()实现行转列
Jul 06 Python
python+logging+yaml实现日志分割
Jul 22 Python
Python通过递归获取目录下指定文件代码实例
Nov 07 Python
如何给Python代码进行加密
Jan 10 Python
tensorflow 实现从checkpoint中获取graph信息
Feb 10 Python
Python3 ID3决策树判断申请贷款是否成功的实现代码
May 21 Python
基于python 将列表作为参数传入函数时的测试与理解
Jun 05 Python
Python列表推导式实现代码实例
Sep 09 Python
七个Python必备的GUI库
Apr 27 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 MySQL与分页效率
2008/06/04 PHP
一些有关检查数据的JS代码
2006/09/07 Javascript
jQuery 性能优化指南(2)
2009/05/21 Javascript
jquery 关键字“拖曳搜索”之“拖曳”以及 图片“提示自适应放大”效果 的实现
2010/04/18 Javascript
eval与window.eval的差别分析
2011/03/17 Javascript
jQuery实现仿路边灯箱广告图片轮播效果
2015/04/15 Javascript
遍历json 对象的属性并且动态添加属性的实现
2016/12/02 Javascript
BootStrapValidator校验方式
2016/12/19 Javascript
学习使用Bootstrap输入框、导航、分页等常用组件
2017/05/11 Javascript
JS和Canvas实现图片的预览压缩和上传功能
2018/03/30 Javascript
Webpack中publicPath路径问题详解
2018/05/03 Javascript
微信小程序实现日历效果
2018/12/28 Javascript
深入了解JavaScript 的 WebAssembly
2019/06/15 Javascript
Python编程中的反模式实例分析
2014/12/08 Python
python求解水仙花数的方法
2015/05/11 Python
使用apidoc管理RESTful风格Flask项目接口文档方法
2018/02/07 Python
单利模式及python实现方式详解
2018/03/20 Python
Python查找两个有序列表中位数的方法【基于归并算法】
2018/04/20 Python
python学习笔记--将python源文件打包成exe文件(pyinstaller)
2018/05/26 Python
python实现AES和RSA加解密的方法
2019/03/28 Python
python实现弹跳小球
2019/05/13 Python
python实现图像外边界跟踪操作
2020/07/13 Python
经验丰富程序员才知道的8种高级Python技巧
2020/07/27 Python
Python -m参数原理及使用方法解析
2020/08/21 Python
html5定位获取当前位置并在百度地图上显示
2014/08/22 HTML / CSS
WoolOvers爱尔兰:羊绒、羊毛和棉针织品
2017/01/04 全球购物
Hotels.com印度:酒店预订
2019/05/11 全球购物
美国家庭鞋店:Shoe Sensation
2019/09/27 全球购物
房地产销售计划书
2014/01/10 职场文书
纪念建党演讲稿范文
2014/01/13 职场文书
党支部书记先进事迹
2014/01/17 职场文书
大学生2014全国两会学习心得体会
2014/03/10 职场文书
小学班级口号
2014/06/09 职场文书
opencv用VS2013调试时用Image Watch插件查看图片
2021/07/26 Python
Python集合的基础操作
2021/11/01 Python
vue 数字翻牌器动态加载数据
2022/04/20 Vue.js