幾種數據統計圖的python寫法
阿新 • • 發佈:2018-02-22
ams dataframe 函數 data sans 列數 mage 工業 絕對值
更新中。。。
本文是作者閱讀《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,定義數據集中異常值是那些 小於QL - 1.5IQR或者大於QU + 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寫法