1. 程式人生 > >幾種數據統計圖的python寫法

幾種數據統計圖的python寫法

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寫法