勉强的猫
博客园 首页 新随笔 联系 订阅

几种数据统计图的python写法

【本篇暂停更新,因为一是写得不好,二是最近时间都用在spring上了,另外我参考的下面这本《python...》官网有错误更正文件,希望对也在读这本书的读者有用。】

 

---原文---

本文是作者阅读《python数据分析与挖掘实战》(张良均等,2016年1月第1版,机械工业出版社)时,将几种数据统计图的python写法做一个笔记。

源代码来自书上,注释来自作者理解。为了方便日后使用,对源代码的更正或者改变部分就不另行说明了,谢谢支持。

 

准备需要python2.7、pandas、numpy、matplotlib等语言或数据分析库,或者直接安装anaconda安装anaconda时不需要再安装python,否则使用自行安装的python不能直接import导入anaconda的计算库)

 

tips:建议使用anaconda的Jupyter Notebook或者Spyder进行以下操作,实测通过命令行和vscode导入包会等的很长

 

一、箱型图

这是一种将数据四等分,以数据大小为依据,取25%位置的数为下四分位数QU,取75%为大四分位数QL,定义数据集中异常值是那些  小于Q- 1.5IQR或者大于Q+ 1.5IQR  的数。其中IQR为上定义的四分位之间差的绝对值。

 

 1 #-*- coding:utf-8 -*-
 2 
 3 import pandas as pd       #导入pandas库,用于数据分析
 4 
 5 data_path = 'data.xls'     #以Excel文件为例
 6 
 7 '''
 8 以下使用read_excel()读取一个Excel文件,并获取列名为“列名字”的一列数据,前面的 u 是为了显示中文避免乱码。
这个函数可以有很多参数,参见官方手册。data是DataFrame类型
9 ''' 10 data = pd.read_excel(data_path, index_col = u'列名字') 11 12 13 import matplotlib.pyplot as plt #导入matplotlib,用于画图 14 plt.rcParams['font.sans-serif'] = ['SimHei'] #指定字体为雅黑,matplotlib不支持直接显示中文 15 plt.rcParams['axes.unicode_minus'] = False #使得matplotlib正常显示负号 16 17 plt.figure() #建立图像 18 19 ''' 20 以下建立箱型图,指定返回值是'dict',此时p是一个字典,其中的'fliers'键的值是一个为异常值的且属于matplotlib的line2D对象列表,
使用get_xdata和get_ydata获得数据的横纵坐标数组(准确是numpy.ndarray)
21 ''' 22 p = data.boxplot(return_type = 'dict') 23 x = p['fliers'][0].get_xdata() 24 y = p['fliers'][0].get_ydata() 25 y.sort() #排序 26 27 28 ''' 29 接下来使用annotate()为该图像增加注释,语法是annotate(u'标签', xy = (cor_x, xor_y), xytext = (cor_x, cor_y)),
其中xy表示标注点坐标,xytext表示注释坐标,cor_x和cor_y是坐标值。
坐标需要根据数据调整,这里不再贴代码。
30 '''

 

由书上的数据和代码得到以下箱型图:

异常值就显而易见了。

posted @ 2018-02-22 17:43  勉强的猫  阅读(3702)  评论(0编辑  收藏  举报