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使用百度API上传文件到百度网盘代码分享
Nov 08 Python
结合Python的SimpleHTTPServer源码来解析socket通信
Jun 27 Python
Python类的动态修改的实例方法
Mar 24 Python
非递归的输出1-N的全排列实例(推荐)
Apr 11 Python
python3获取当前文件的上一级目录实例
Apr 26 Python
解决Python列表字符不区分大小写的问题
Dec 19 Python
python正则表达式匹配IP代码实例
Dec 28 Python
Tensorflow 实现释放内存
Feb 03 Python
Python对象的属性访问过程详解
Mar 05 Python
4种非常实用的python内置数据结构
Apr 28 Python
Pygame如何使用精灵和碰撞检测
Nov 17 Python
django中websocket的具体使用
Jan 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
第四节 构造函数和析构函数 [4]
2006/10/09 PHP
PHP4实际应用经验篇(7)
2006/10/09 PHP
php桌面中心(二) 数据库写入
2007/03/11 PHP
PHP实现提取一个图像文件并在浏览器上显示的代码
2012/10/06 PHP
递归删除一个节点以及该节点下的所有节点示例
2014/03/19 PHP
PHP使用memcache缓存技术提高响应速度的方法
2014/12/26 PHP
PHP中Array相关函数简介
2016/07/03 PHP
Laravel框架查询构造器简单示例
2019/05/08 PHP
js中eval详解
2012/03/30 Javascript
jQuery简单实现QQ空间点赞已经取消点赞
2015/04/02 Javascript
js实现获取当前时间是本月第几周的方法
2015/08/11 Javascript
AngularJS中实现动画效果的方法
2016/07/28 Javascript
jquery Ajax 全局调用封装实例详解
2017/01/16 Javascript
Vue2.0学习之详解Vue 组件及父子组件通信
2017/12/12 Javascript
详解VUE2.X过滤器的使用方法
2018/01/11 Javascript
实例详解Vue项目使用eslint + prettier规范代码风格
2018/08/20 Javascript
如何实现双向绑定mvvm的原理实现
2019/05/28 Javascript
js JSON.stringify()基础详解
2019/06/19 Javascript
vue-iview动态新增和删除的方法
2020/06/17 Javascript
python获取文件版本信息、公司名和产品名的方法
2014/10/05 Python
提升Python程序运行效率的6个方法
2015/03/31 Python
Python实现感知器模型、两层神经网络
2017/12/19 Python
浅谈pandas中DataFrame关于显示值省略的解决方法
2018/04/08 Python
一款纯css3实现的动画加载导航
2014/10/08 HTML / CSS
canvas三角函数模拟水波效果的示例代码
2018/07/03 HTML / CSS
HTML5+css3:3D旋转木马效果相册
2017/01/03 HTML / CSS
小女主人连衣裙:Little Mistress
2017/07/10 全球购物
求职自荐书范文
2013/12/04 职场文书
房地产销售计划书
2014/01/10 职场文书
《白鹅》教学反思
2014/04/13 职场文书
运动会拉拉队口号
2014/06/09 职场文书
优秀共产党员事迹材料
2014/12/18 职场文书
2015年班组工作总结
2015/04/20 职场文书
Nginx 根据URL带的参数转发的实现
2021/04/01 Servers
Tensorflow与RNN、双向LSTM等的踩坑记录及解决
2021/05/31 Python
win11如何查看端口是否被占用? Win11查看端口是否占用的技巧
2022/04/05 数码科技