幾種數據統計圖的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 '''

 

由書上的數據和代碼得到以下箱型圖:

異常值就顯而易見了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM