几种数据统计图的python写法

Posted 勉强的猫

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了几种数据统计图的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 \'\'\'

 

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

异常值就显而易见了。

以上是关于几种数据统计图的python写法的主要内容,如果未能解决你的问题,请参考以下文章

python 学习笔记(循环,print的几种写法,操作符)

Laravel:如何在控制器的几种方法中重用代码片段

Java for循环几种写法整理

引用CSS的写法有几种?

冒泡排序算法有几种写法?

python 用于数据探索的Python代码片段(例如,在数据科学项目中)