它主要用于反映原始数据分布的特征,还可以进行多组数据分布特征的比较

如何利用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()

结果显示

如何获取箱型图特征

 """
【函数说明】获取箱体图特征
【输入】 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_箱型图绘制与特征值获取的更多相关文章

  1. 06. Matplotlib 2 |折线图| 柱状图| 堆叠图| 面积图| 填图| 饼图| 直方图| 散点图| 极坐标| 图箱型图

    1.基本图表绘制 plt.plot() 图表类别:线形图.柱状图.密度图,以横纵坐标两个维度为主同时可延展出多种其他图表样式 plt.plot(kind='line', ax=None, figsiz ...

  2. Python图表数据可视化Seaborn:2. 分类数据可视化-分类散点图|分布图(箱型图|小提琴图|LV图表)|统计图(柱状图|折线图)

    1. 分类数据可视化 - 分类散点图 stripplot( ) / swarmplot( ) sns.stripplot(x="day",y="total_bill&qu ...

  3. 使用matplotlib 制图(柱状图、箱型图)

    柱状图: import pandas as pd import matplotlib.pyplot as plt data = pd.read_csv('D:\\myfiles\\study\\pyt ...

  4. matplotlib柱状图、面积图、直方图、散点图、极坐标图、箱型图

    一.柱状图 1.通过obj.plot() 柱状图用bar表示,可通过obj.plot(kind='bar')或者obj.plot.bar()生成:在柱状图中添加参数stacked=True,会形成堆叠 ...

  5. R绘图(1): 在散点图边缘加上直方图/密度图/箱型图

    当我们在绘制散点图的时候,可能会遇到点特别多的情况,这时点与点之间过度重合,影响我们对图的认知.为了更好地反映特征,我们可以加上点的密度信息,比如在原来散点所在的位置将密度用热图的形式呈现出来,再比如 ...

  6. seaborn学习笔记(四):箱型图、小提琴图

    html { font-family: sans-serif; -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100% } body { ...

  7. R语言-箱型图&热力图

    1.箱型图 boxplot()函数 > metals<-read.csv("metals.csv",header=TRUE) #读取文件和列名 > boxplot ...

  8. python箱型图

    #-*- coding: utf-8 -*- import pandas as pd catering_sale = '../data/catering_sale.xls' #餐饮数据 data = ...

  9. 人工智能_机器学习——pandas - 箱型图

    箱型图对数据的展示也是非常清晰的,这是箱型图的一些代码 #导报 机器学习三剑客 import numpy as np import pandas as pd from matplotlib impor ...

随机推荐

  1. 漏洞复现:MS17-010缓冲区溢出漏洞(永恒之蓝)

    MS17-010缓冲区溢出漏洞复现 攻击机:Kali Linux 靶机:Windows7和2008 1.打开攻击机Kali Linux,msf更新到最新版本(现有版本5.x),更新命令:apt-get ...

  2. Factory Method工厂方法模式

    定义一个用于创建对象的接口,让子类决定将哪一个类实例化.Factory Method使一个类的实例化延迟到其子类,属于创建型模式 在此模式中,工厂父类负责定义创建产品对象的公共接口,而工厂子类负责生产 ...

  3. React Hooks 你不来了解下?

    前言 最近在看 React 的新语法-- React Hooks,只能一句话概括:React 语法真的是越来越强大,越写代码越少. 强烈推荐还没看 React Hooks 的同学去学习下,这会让你写r ...

  4. Winform中实现ZedGraph的多条Y轴(附源码下载)

    场景 Winforn中设置ZedGraph曲线图的属性.坐标轴属性.刻度属性: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10 ...

  5. HTML 框架导航

    初次学习HTML,在www.w3school.com.cn看到了框架导航,上面的例子没有看懂所以搜了一下相应的问题,最后弄懂了怎么实现同一界面下的框架导航. 首先是www.w3school.com.c ...

  6. Java第三次作业第五题

    5. [问题描述]Fibonacci序列处理 从文件in.txt中读取第一个数作为Fibonacci数列的开始数n,读取第二个数,作为需要写入的数的个数m. 将从n开始的m个Fibonacci数列写入 ...

  7. Spring Boot 入门之单元测试篇(五)

    博客地址:http://www.moonxy.com 一.前言 JUnit 是一个由 Java 语言编写的开源的回归测试(回归测试是指重复以前全部或部分的相同测试)框架,由Erich Gamma 和 ...

  8. Salesforce学习之路-developer篇(二)利用Jenkins和Bitbucket实现Salesforce的CI/CD功能

    上文提到,基于CRM的二次开发是必不可少的,但是在实际项目中CI/CD是不可忽略的一个重要部分,与传统的Java,Python项目不同,如果对Salesforce进行持续集成和持续部署呢? 结合找到的 ...

  9. selenium-05-常见问题

    一:日期控件 selenium不能直接对日期控件操作,可以通过js对日期控件做赋值操作 WebElement inputTimeBox=driver.findElement(by.name(" ...

  10. 浅谈Spring的事务隔离级别与传播性

    浅谈Spring的事务隔离级别与传播性 这篇文章以一个问题开始,如果你知道答案的话就可以跳过不看啦@(o・ェ・)@ Q:在一个批量任务执行的过程中,调用多个子任务时,如果有一些子任务发生异常,只是回滚 ...