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 18 Python
利用python获取某年中每个月的第一天和最后一天
Dec 15 Python
Python实现将罗马数字转换成普通阿拉伯数字的方法
Apr 19 Python
matplotlib中legend位置调整解析
Dec 19 Python
Python Xml文件添加字节属性的方法
Mar 31 Python
pytorch多进程加速及代码优化方法
Aug 19 Python
python绘制BA无标度网络示例代码
Nov 21 Python
简单了解Python3 bytes和str类型的区别和联系
Dec 19 Python
pyinstaller打包单文件时--uac-admin选项不起作用怎么办
Apr 15 Python
python re模块和正则表达式
Mar 24 Python
Django操作cookie的实现
May 26 Python
Python使用mitmproxy工具监控手机 下载手机小视频
Apr 18 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中操作ini配置文件的方法
2013/04/25 PHP
彻底删除thinkphp3.1案例blog标签的方法
2014/12/05 PHP
PHP大文件分割上传 PHP分片上传
2017/08/28 PHP
laravel-admin 管理平台获取当前登陆用户信息的例子
2019/10/08 PHP
JavaScript 创建对象和构造类实现代码
2009/07/30 Javascript
写js时遇到的一些小问题
2010/12/06 Javascript
基于jquery固定于顶部的导航响应浏览器滚动条事件
2014/11/02 Javascript
javascript中clipboardData对象用法详解
2015/05/13 Javascript
Bootstrap编写一个兼容主流浏览器的受众巨幕式风格页面
2016/07/01 Javascript
js删除Array数组中指定元素的两种方法
2016/08/03 Javascript
canvas实现刮刮卡效果
2017/03/14 Javascript
详解nodejs微信公众号开发——5.素材管理接口
2017/04/11 NodeJs
ES6 如何改变JS内置行为的代理与反射
2019/02/11 Javascript
vue路由跳转传参数的方法
2019/05/06 Javascript
关于vue3.0中的this.$router.replace({ path: '/'})刷新无效果问题
2020/01/16 Javascript
浅析JS中NEW的实现原理及重写
2020/02/20 Javascript
Python中使用items()方法返回字典元素对的教程
2015/05/21 Python
Python矩阵常见运算操作实例总结
2017/09/29 Python
python文本数据相似度的度量
2018/03/12 Python
Python提取支付宝和微信支付二维码的示例代码
2019/02/15 Python
pytorch之添加BN的实现
2020/01/06 Python
Python 写了个新型冠状病毒疫情传播模拟程序
2020/02/14 Python
Java Spring项目国际化(i18n)详细方法与实例
2020/03/20 Python
Python 线性回归分析以及评价指标详解
2020/04/02 Python
如何基于Python按行合并两个txt
2020/11/03 Python
python集合的新增元素方法整理
2020/12/07 Python
Python爬虫模拟登陆哔哩哔哩(bilibili)并突破点选验证码功能
2020/12/21 Python
python推导式的使用方法实例
2021/02/28 Python
FILA斐乐中国官方商城:意大利运动品牌
2017/01/25 全球购物
家庭睡衣和家庭用品:Little Blue House
2018/03/18 全球购物
美国婚礼装饰和活动用品批发供应商:Event Decor Direct
2018/10/12 全球购物
Hello Molly美国:女性时尚在线
2019/08/26 全球购物
说出ArrayList,Vector, LinkedList的存储性能和特性
2015/01/04 面试题
毕业生自我鉴定实例
2014/01/21 职场文书
《争吵》教学反思
2014/02/15 职场文书
联想win10摄像头打不开怎么办?win10笔记本摄像头打不开解决办法
2022/04/08 数码科技