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 相关文章推荐
有关wxpython pyqt内存占用问题分析
Jun 09 Python
Pythont特殊语法filter,map,reduce,apply使用方法
Feb 27 Python
利用Python自动监控网站并发送邮件告警的方法
Aug 24 Python
Windows环境下python环境安装使用图文教程
Mar 13 Python
Python 查找字符在字符串中的位置实例
May 02 Python
使用python生成杨辉三角形的示例代码
Aug 29 Python
彻彻底底地理解Python中的编码问题
Oct 15 Python
python2与python3的print及字符串格式化小结
Nov 30 Python
Python发展简史 Python来历
May 14 Python
python绘制已知点的坐标的直线实例
Jul 04 Python
Python While循环语句实例演示及原理解析
Jan 03 Python
python实现在内存中读写str和二进制数据代码
Apr 24 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
深入HTTP响应状态码速查表的详解
2013/06/07 PHP
php+mysqli实现批量执行插入、更新及删除数据的方法
2015/01/29 PHP
总结PHP代码规范、流程规范、git规范
2018/06/18 PHP
由prototype_1.3.1进入javascript殿堂-类的初探
2006/11/06 Javascript
js取得url地址参数实例
2013/02/22 Javascript
js+div实现图片滚动效果代码
2014/02/10 Javascript
JavaScript字符串对象substr方法入门实例(用于截取字符串)
2014/10/16 Javascript
js随机生成字母数字组合的字符串 随机动画数字
2015/09/02 Javascript
jQuery右侧选项卡焦点图片轮播特效代码分享
2015/09/05 Javascript
基于JavaScript实现鼠标箭头移动图片跟着移动
2016/08/30 Javascript
解析JavaScript实现DDoS攻击原理与保护措施
2016/12/26 Javascript
BootStrap 图片样式、辅助类样式和CSS组件的实例详解
2017/01/20 Javascript
原生JS实现九宫格抽奖效果
2017/04/01 Javascript
Vue实现动态响应数据变化
2017/04/28 Javascript
nodejs中解决异步嵌套循环和循环嵌套异步的问题
2017/07/12 NodeJs
详解vue.js之props传递参数
2017/12/12 Javascript
vue项目持久化存储数据的实现代码
2018/10/01 Javascript
js实现贪吃蛇小游戏
2019/10/29 Javascript
vue-cli3 取消eslint校验代码的解决办法
2020/01/16 Javascript
pygame学习笔记(5):游戏精灵
2015/04/15 Python
简单实现python进度条脚本
2017/12/18 Python
Tensorflow实现卷积神经网络的详细代码
2018/05/24 Python
利用Python读取txt文档的方法讲解
2018/06/23 Python
python 运用Django 开发后台接口的实例
2018/12/11 Python
python解析含有重复key的json方法
2019/01/22 Python
python获取指定日期范围内的每一天,每个月,每季度的方法
2019/08/08 Python
python转化excel数字日期为标准日期操作
2020/07/14 Python
python 使用xlsxwriter循环向excel中插入数据和图片的操作
2021/01/01 Python
python pyg2plot的原理知识点总结
2021/02/28 Python
发现两个有趣的CSS3动画效果
2013/08/14 HTML / CSS
美国知名的百货清仓店:Neiman Marcus Last Call
2016/08/03 全球购物
惠普美国官方商店:HP Official Store
2016/08/28 全球购物
意大利巧克力店:Chocolate Shop
2019/07/24 全球购物
班级活动策划书
2014/02/06 职场文书
Python机器学习之决策树和随机森林
2021/07/15 Javascript
SQLServer RANK() 排名函数的使用
2022/03/23 SQL Server