zoukankan      html  css  js  c++  java
  • 几种数据统计图的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 '''

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

    异常值就显而易见了。

    The END

    勉强的猫,编程路上的小学生

    欢迎关注我的:
  • 相关阅读:
    leetcode 13. Roman to Integer
    python 判断是否为有效域名
    leetcode 169. Majority Element
    leetcode 733. Flood Fill
    最大信息系数——检测变量之间非线性相关性
    leetcode 453. Minimum Moves to Equal Array Elements
    leetcode 492. Construct the Rectangle
    leetcode 598. Range Addition II
    leetcode 349. Intersection of Two Arrays
    leetcode 171. Excel Sheet Column Number
  • 原文地址:https://www.cnblogs.com/wangnig/p/8459650.html
Copyright © 2011-2022 走看看