python-繪圖與可視化( 三 )


文章插圖
(3)使用Seaborn“??帷比欢鴖eaborn 不僅能夠用來更改背景顏色 , 或者改變畫布大小,還有其他很多方面的用途 , 比如下面這個例子:
import seaborn as snssns.set()#通過加載sns自帶數據庫中的數據(具體數據可以不關心)flights_long = sns.load_dataset("flights")flights = flights_long.pivot("month","year","passengers")#使用每個單元格中的數據值繪制一個熱圖heatmapsns.heatmap(flights,annot=True,fmt="d",linewidths=.5)plt.show()

python-繪圖與可視化

文章插圖
4.描述性統計圖形概覽描述性統計是借助圖表或者總結性的數值來描述數據的統計手段 。數據挖掘工作的數據分析階段 , 我們可借助描述性統計來描述或總結數據的基本情況,一來可以梳理自己的思維,二來可以更好地向他人展示數據分析結果 。數值分析的過程中 , 我們往往要計算出數據的統計特征,用來做科學計算的Numpy和SciPy工具可以滿足我們的需求 。Matplotlib工具可用來繪制圖,滿足圖分析的需求 。
4.1制作數據數據是自己制作的,主要包括個人身高、體重及一年的借閱圖書量(之所以自己制作數據是因為不是每份真實的數據都可以進行接下來的分析,比如有些數據就不能繪制餅圖 , 另一個角度也說明,此處舉例的數據其實沒有實際意義,只是為了分析而舉例,但是不代表在具體的應用中這些分析不能發揮作用) 。另外,以下的數據顯示都是在Seaborn庫的作用下體現的效果 。
#案例分析(結合圖書情報學,比如借書量)from numpy import arrayfrom numpy.random import normaldef getData():    heights = []    weights = []    books = []    N =10000    for i in range(N):        while True:            #身高服從均值為172,標準差為6的正態分布            height = normal(172,6)            if 0<height:break        while True:            #體重由身高作為自變量的線性回歸模型產生 , 誤差服從標準正態分布            weight = (height-80)*0.7 + normal(0,1)            if 0 < weight:break        while True:            #借閱量服從均值為20,標準差為5的正態分布            number = normal(20,5)            if 0<= number and number<=50:                book = "E"if number <10 else("D"if number<15 else ("C"if number<20 else("B"if number<25 else "A")))            break        heights.append(height)        weights.append(weight)        books.append(book)        return array(heights),array(weights),array(books)    heights,weights,books =getData()4.2 頻數分析(1)定性分析柱狀圖和餅形圖是對定性數據進行頻數分析的常用工具 , 使用前需將每一類的頻數計算出來 。①柱狀圖 。柱狀圖是以柱的高度來指代某種類型的頻數 , 使用Matplotlib對圖書借閱量這一定性變量繪制柱狀圖的代碼如下:
from matplotlib import pyplot#繪制柱狀圖def drawBar(books):    xticks=["A","B","C","D","E"]    bookGroup ={ }    #對每一類借閱量進行頻數統計    for book in books:        bookGroup[book] = bookGroup.get(book,0) + 1    #創建柱狀圖    #第一個參數為柱的橫坐標    #第二個參數為柱的高度    #參數align為柱的對齊方式,以第一個參數為參考標準    pyplot.bar(range(5),[bookGroup.get(xtick,0) for xtick in xticks],align="center")    #設置柱的文字說明    #第一個參數為文字說明的橫坐標    #第二個參數為文字說明的內容    pyplot.xticks(range(5),xticks)    #設置橫坐標的文字說明    pyplot.xlabel("Types of Students")    #設置縱坐標的文字說明    pyplot.ylabel("Frequency")    #設置標題    pyplot.title("Numbers of Books Students Read")    #繪圖    pyplot.show()    drawBar(books)

推薦閱讀