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类的专用方法实例分析
Jan 09 Python
Python3.6简单操作Mysql数据库
Sep 12 Python
Python实现OpenCV的安装与使用示例
Mar 30 Python
python脚本生成caffe train_list.txt的方法
Apr 27 Python
Python中py文件引用另一个py文件变量的方法
Apr 29 Python
对pandas写入读取h5文件的方法详解
Dec 28 Python
Django项目之Elasticsearch搜索引擎的实例
Aug 21 Python
tensorflow2.0保存和恢复模型3种方法
Feb 03 Python
Python 面向对象部分知识点小结
Mar 09 Python
python爬虫实现获取下一页代码
Mar 13 Python
Django视图、传参和forms验证操作
Jul 15 Python
python中openpyxl和xlsxwriter对Excel的操作方法
Mar 01 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
咖啡豆要不要放冰箱的原因
2021/03/04 冲泡冲煮
windows xp下安装pear
2006/12/02 PHP
攻克CakePHP系列一 连接MySQL数据库
2008/10/22 PHP
php使用str_shuffle()函数生成随机字符串的方法分析
2017/02/17 PHP
Smarty3配置及入门语法
2017/02/22 PHP
JavaScript的面向对象(二)
2006/11/09 Javascript
jquery属性选择器not has怎么写 行悬停高亮显示
2013/11/13 Javascript
jquery实现的导航固定效果
2014/04/28 Javascript
javascript原生和jquery库实现iframe自适应高度和宽度
2014/07/18 Javascript
js星星评分效果
2014/07/24 Javascript
JQuery validate插件验证用户注册信息
2016/05/11 Javascript
jQuery中checkbox反复调用attr('checked', true/false)只有第一次生效的解决方法
2016/11/16 Javascript
JS实现提交表单前的数字及邮箱校检功能
2017/11/13 Javascript
浅谈vue中.vue文件解析流程
2018/04/24 Javascript
详解微信JS-SDK选择图片遇到的坑
2018/08/15 Javascript
JavaScript创建对象方法实例小结
2018/09/03 Javascript
Python3基础之基本数据类型概述
2014/08/13 Python
自己编程中遇到的Python错误和解决方法汇总整理
2015/06/03 Python
使用Python实现微信提醒备忘录功能
2018/12/04 Python
Python利用字典破解WIFI密码的方法
2019/02/27 Python
Python多线程threading join和守护线程setDeamon原理详解
2020/03/18 Python
python 爬取百度文库并下载(免费文章限定)
2020/12/04 Python
微信html5页面调用第三方位置导航的示例
2018/03/14 HTML / CSS
请说出你所知道的线程同步的方法
2013/04/19 面试题
精伦电子Java笔试题
2013/01/16 面试题
在校生汽车维修实习自我鉴定
2013/09/19 职场文书
中专毕业个人的自荐信格式
2013/09/21 职场文书
求职信内容考虑哪几点
2013/10/05 职场文书
成语的广告词
2014/03/19 职场文书
捐助倡议书范文
2014/04/15 职场文书
《小鹰学飞》教学反思
2014/04/23 职场文书
信用社竞聘演讲稿
2014/05/16 职场文书
感恩节活动策划方案
2014/05/16 职场文书
分公司经理任命书
2014/06/05 职场文书
研究生导师推荐信
2015/03/25 职场文书
刑事法律意见书
2015/06/04 职场文书