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学习数据结构实例代码
May 11 Python
浅谈对yield的初步理解
May 29 Python
Pandas探索之高性能函数eval和query解析
Oct 28 Python
基于numpy.random.randn()与rand()的区别详解
Apr 17 Python
对python 矩阵转置transpose的实例讲解
Apr 17 Python
django中静态文件配置static的方法
May 20 Python
python高阶爬虫实战分析
Jul 29 Python
Python提取特定时间段内数据的方法实例
Apr 01 Python
Django REST Framework序列化外键获取外键的值方法
Jul 26 Python
浅析Django中关于session的使用
Dec 30 Python
如何基于pandas读取csv后合并两个股票
Sep 25 Python
Python编写nmap扫描工具
Jul 21 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断点续传之如何分割合并文件
2014/03/22 PHP
WordPress中使主题支持小工具以及添加插件启用函数
2015/12/22 PHP
js/jquery获取浏览器窗口可视区域高度和宽度以及滚动条高度实现代码
2012/12/17 Javascript
引用 js在IE与FF之间的区别详细解析
2013/11/20 Javascript
快速解决jquery之get缓存问题的最简单方法介绍
2013/12/19 Javascript
js中小数转换整数的方法
2014/01/26 Javascript
javascript 事件处理示例分享
2014/12/31 Javascript
javascript中的正则表达式使用指南
2015/03/01 Javascript
JS中字符串trim()使用示例
2015/05/26 Javascript
浅谈jquery的map()和each()方法
2016/06/12 Javascript
JS把内容动态插入到DIV的实现方法
2016/07/19 Javascript
Jquery和Js获得元素标签名称的方法总结
2016/10/08 Javascript
Bootstrap table 定制提示语的加载过程
2017/02/20 Javascript
微信小程序 图片绝对定位(背景图片)
2017/04/05 Javascript
BootStrap 动态表单效果
2017/06/02 Javascript
vue实现手机号码抽奖上下滚动动画示例
2017/10/18 Javascript
利用10行js代码实现上下滚动公告效果
2017/12/08 Javascript
解决vuejs项目里css引用背景图片不能显示的问题
2018/09/13 Javascript
vue实现购物车抛物线小球动画效果的方法详解
2019/02/13 Javascript
layui动态表头的实现代码
2019/08/22 Javascript
解决layui弹框失效的问题
2019/09/09 Javascript
Layui数据表格判断编辑输入的值,是否为我需要的类型详解
2019/10/26 Javascript
element中的$confirm的使用
2020/04/26 Javascript
使用JavaScript获取扫码枪扫描得到的条形码的思路代码详解
2020/06/10 Javascript
Vue中的this.$options.data()和this.$data用法说明
2020/07/26 Javascript
对python_discover方法遍历所有执行的用例详解
2019/02/13 Python
numpy concatenate数组拼接方法示例介绍
2019/05/27 Python
Python GUI编程 文本弹窗的实例
2019/06/11 Python
通过实例简单了解Python中yield的作用
2019/12/11 Python
pytorch 图像中的数据预处理和批标准化实例
2020/01/15 Python
Python 求向量的余弦值操作
2021/03/04 Python
Public Desire美国/加拿大:全球性的在线鞋类品牌
2018/12/17 全球购物
Hotels.com越南:酒店预订
2019/10/29 全球购物
幼儿师范毕业生自荐信
2013/11/09 职场文书
读书伴我成长演讲稿
2014/05/07 职场文书
JVM钩子函数的使用场景详解
2021/08/23 Java/Android