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计算三角函数之atan()方法的使用
May 15 Python
python冒泡排序简单实现方法
Jul 09 Python
python获取网页中所有图片并筛选指定分辨率的方法
Mar 31 Python
python pycurl验证basic和digest认证的方法
May 02 Python
PyQt5创建一个新窗口的实例
Jun 20 Python
浅谈Python类中的self到底是干啥的
Nov 11 Python
对tensorflow中tf.nn.conv1d和layers.conv1d的区别详解
Feb 11 Python
Python中求对数方法总结
Mar 10 Python
python实现秒杀商品的微信自动提醒功能(代码详解)
Apr 27 Python
Python命名空间及作用域原理实例解析
Aug 12 Python
pytorch 权重weight 与 梯度grad 可视化操作
Jun 05 Python
详解MindSpore自定义模型损失函数
Jun 30 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
BBS(php &amp; mysql)完整版(七)
2006/10/09 PHP
php中foreach结合curl实现多线程的方法分析
2016/09/22 PHP
Laravel中基于Artisan View扩展包创建及删除应用视图文件的方法
2016/10/08 PHP
PHP时间类完整代码实例
2021/02/26 PHP
js form action动态修改方法
2008/11/04 Javascript
JQuery 表单中textarea字数限制实现代码
2009/12/07 Javascript
解决jquery的.animate()函数在IE6下的问题
2010/12/03 Javascript
3种不同方式的焦点图轮播特效分享
2013/10/30 Javascript
xmlhttp缓存清除的2种解决方法
2013/12/13 Javascript
Node调试工具JSHint的安装及配置教程
2014/05/27 Javascript
node.js中的fs.fchown方法使用说明
2014/12/16 Javascript
node爬取微博的数据的简单封装库nodeweibo使用指南
2015/01/02 Javascript
浅谈javascript中的Function和Arguments
2016/08/30 Javascript
easyui combotree加载静态数据问题(选不上)解决方法
2016/12/26 Javascript
Vue 简单实现前端权限控制的示例
2020/12/25 Vue.js
python使用chardet判断字符串编码的方法
2015/03/13 Python
Python 装饰器实现DRY(不重复代码)原则
2018/03/05 Python
python输入多行字符串的方法总结
2019/07/02 Python
Python爬虫爬取Bilibili弹幕过程解析
2019/10/10 Python
Pandas读取csv时如何设置列名
2020/06/02 Python
CSS3 3D位移translate效果实例介绍
2016/05/03 HTML / CSS
阿迪达斯希腊官方网上商店:adidas希腊
2019/04/06 全球购物
日语专业个人的求职信
2013/12/03 职场文书
咖啡厅创业计划书范本
2014/01/22 职场文书
快餐店的创业计划书范文
2014/01/29 职场文书
店长职务说明书
2014/02/04 职场文书
军人违纪检讨书
2014/02/04 职场文书
《穷人》教学反思
2014/04/08 职场文书
商务日语专业自荐信
2014/04/17 职场文书
教师考察材料范文
2014/06/03 职场文书
赵乐秦在党的群众路线教育实践活动总结大会上的讲话稿
2014/10/25 职场文书
关于感谢信的范文
2015/01/23 职场文书
大学考试作弊检讨书
2015/05/06 职场文书
学习焦裕禄观后感
2015/06/09 职场文书
银行培训心得体会范文
2016/01/09 职场文书
社会心理学学习心得体会
2016/01/22 职场文书