1. 程式人生 > >利用python進行資料分析之繪圖和視覺化

利用python進行資料分析之繪圖和視覺化

matplotlib API入門

 使用matplotlib的辦法最常用的方式是pylab的ipython,pylab模式還會向ipython引入一大堆模組和函式提供一種更接近與matlab的介面,matplotlib API函式位於matplotlib.pyplot模組中,其通常的引入約定是:import matplot.pyplot as plt

1、Figure和Subplot

matplotlib的影象都位於Figure物件中,你可以用plt.figure建立一個新的Figure,不能通過空Figure繪圖,必須用add_subplot建立一個或多個sub_plot才行

>>> import
matplotlib.pyplot as plt >>> fig=plt.figure() >>> ax1=fig.add_subplot(2,2,1) >>> ax2=fig.add_subplot(2,2,2)

 你可以在matplotlib的文件中找到各種圖表型別,由於根據特定佈局建立Figure和subplot是一件常見的任務,於是便出現一個更為方便的方法:plt.subplots,它可以建立一個新的Figure,且返回一個含有已建立的subplot物件的numpy陣列。

pandas中的繪圖函式

1、線型圖

Series和DataFrame都有一個用於生成各類圖示的plot方法,預設情況下,他們所生成的是線型圖,該Series的索引會被傳給matplotlib,並用於繪製x軸

>>> from pandas import *
>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> s=Series(np.random.randn(10).cumsum(),index=np.arange(0,100,10))
>>> s.plot()
>>> plt.show(s.plot())

DataFrame的plot方法會在一個subplot中為各列繪製一條直線,並自動建立圖例:

>>> df=DataFrame(np.random.randn(10,4).cumsum(0),columns=['
A','B','C','D'],index=np.arange(0,100,10)) >>> plt.show(df.plot())

2、柱狀圖

在生成的線型圖的程式碼中加上kind='bar'(垂直樹狀圖)或 kind='barch'(水平柱狀圖)即可生成柱狀圖,此時,Series和DataFrame的索引將會被用作X或Y的刻度。

data=Series(np.random.rand(16),index=list('abcdefghijklmnop'))
>>> data.plot(kind='bar',ax=axes[0],color='k',alpha=0.7)
<matplotlib.axes._subplots.AxesSubplot object at 0x06FA9FD0>
>>> data.plot(kind='bar',ax=axes[1],color='k',alpha=0.7)
<matplotlib.axes._subplots.AxesSubplot object at 0x049D02D0>

對於DataFrame,柱狀圖會將每一行的值分為一組

>>> df=DataFrame(np.random.rand(6,4),index=['one','two','three','four','five','six'],columns=['A','B','C','D'])
>>> df.columns.name='Genus'
>>> df
Genus         A         B         C         D
one    0.610197  0.132144  0.919492  0.432829
two    0.493323  0.899049  0.438195  0.300159
three  0.305448  0.404252  0.374776  0.924542
four   0.982561  0.233063  0.135196  0.385672
five   0.613274  0.574884  0.684504  0.123448
six    0.791576  0.062249  0.597673  0.058899
>>> plt.show(df.plot(kind='bar'))

3、直方圖和密度圖

 直方圖是一種可以對值頻率進行離散化顯示的柱狀圖,另一種是密度圖,它是通過計算可能會產生觀測資料的連續概率分佈的估計而產生的。一般過程是將該分佈近似為一組核分佈,因此,密度圖也被稱作KDE圖,呼叫plt時加上kind='kde'即可生成一張密度圖。

4、散佈圖

散佈圖是觀察兩個一維資料序列之間的關係的有效手段,matplotlib的scatter方法是繪製散佈圖的主要方法。

>>> from pandas import *
>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> macro=read_csv(r'D:\書籍與程式碼資料\利用python進行資料分析程式碼和資料集\ch08\macrodata.csv')
>>> data=macro[['cpi','m1','tbilrate','unemp']]
>>> trans_data=np.log(data).diff().dropna()
>>> trans_data[-5:]
          cpi        m1  tbilrate     unemp
198 -0.007904  0.045361 -0.396881  0.105361
199 -0.021979  0.066753 -2.277267  0.139762
200  0.002340  0.010286  0.606136  0.160343
201  0.008419  0.037461 -0.200671  0.127339
202  0.008894  0.012202 -0.405465  0.042560
>>> plt.scatter(trans_data['m1'],trans_data['unemp'])
<matplotlib.collections.PathCollection object at 0x0525C6D0>
>>> plt.show()

 在探索式的資料分析中,同時觀察一組變數的散佈圖是很有意義的,這也被稱為散佈矩陣;pandas提供了一個能從DataFrame建立散佈圖矩陣的scatter_matrix函式。

Python圖形化工具生態系統介紹

Chaco:適合用複雜的圖形化方法表達資料的內部關係,對互動支援較多與適合

mayayi:基於C++圖形庫的圖形工具包

相關推薦

利用python進行資料分析繪圖視覺

matplotlib API入門  使用matplotlib的辦法最常用的方式是pylab的ipython,pylab模式還會向ipython引入一大堆模組和函式提供一種更接近與matlab的介面,matplotlib API函式位於matplotlib.pyplot模組中,其通常的引入約定是:import

利用python進行資料分析繪圖視覺

通常的引入約定是: import matplotlib.pyplot as plt fig,axes=plt.subplots(2,3) 這種用法,可以一下子產生2x3個子視窗,並且以numpy陣列的方式儲存在axes中,而fig仍然是整個影象物件,這樣我們可以通過對a

利用Python進行資料分析第七章 記錄2 資料規整:清理、轉換、合併、重塑

索引上的合併 DataFrame中傳入引數left_index=True或者right_index=True(或者兩個都傳入),表示DataFrame的index(索引)被用作兩個DataFrame連線的連線鍵,如下: dataframe1 = DataFrame({'key':

利用Python進行資料分析第七章記錄 資料規整:清理、轉換、合併、重塑

合併資料集: pandas物件中的資料可以通過一些內建的方式進行合併: pandas.merge可根據一個或多個鍵將不同DataFrame中的行連線起來。SQL或其它關係型資料庫的使用者對此應該會比較熟悉,因為它實現的就是資料庫的連線操作。 pandas.concat可以沿著一條軸將多個

利用python進行資料分析——資料規整1(ETL)

待我學有所成,結髮與蕊可好。@夏瑾墨 by Jooey 合併資料集 資料庫風格的DataFrame合併 索引上的合併 軸向連線 1.資料庫風格的DataFrame合併 i

利用python進行資料分析——資料規整2(ETL)

待我學有所成,結髮與蕊可好。@夏瑾墨 by Jooey 3.資料的軸向連線 Nunpy 有一個用於合併串聯原始Numpy陣列的concatenation函式 import numpy as np import pandas as pd from p

利用Python進行資料分析——繪圖視覺(八)(2)

1、註釋以及在Subplot上繪圖 除標準的圖表物件之外,你可能還希望繪製一些自定義的註釋(比如文字、箭頭或其他圖形等)。 註釋可以通過text、arrow和annotate等函式進行新增。text可以將文字繪製在圖表的指定座標(x, y),還可以加上一些自定義格式: In [41]: ax.t

轉載]利用Python進行資料分析——繪圖視覺 xticks-學習筆記

matplotlib是一個用於創建出版質量圖表的桌面繪圖包(主要是2D方面)。該專案是由John Hunter於2002年啟動的,其目的是為Python構建一個MATLAB式的繪圖介面。如果結合使用一種GUI工具包(如IPython),matplotlib還具有諸如縮放和平移等互動功能。它不僅支援各種作業系

利用Python進行資料分析·第2版》第9章 繪圖視覺

資訊視覺化(也叫繪圖)是資料分析中最重要的工作之一。它可能是探索過程的一部分,例如,幫助我們找出異常值、必要的資料轉換、得出有關模型的 idea 等。另外,做一個可互動的資料視覺化也許是工作的最終目標。Python 有許多庫進行靜態或動態的資料視覺化,但我這裡重要關注於 ma

利用python進行資料分析-繪圖視覺1

matplotlib AIP入門 1.Figure和Subplot matplotlib的影象都位於Figure物件中。你可以用plt.figure建立一個新的Figure: fig=plt.figu

資料基礎---《利用Python進行資料分析·第2版》第4章 NumPy基礎:陣列向量計算

之前自己對於numpy和pandas是要用的時候東學一點西一點,直到看到《利用Python進行資料分析·第2版》,覺得只看這一篇就夠了。非常感謝原博主的翻譯和分享。 NumPy(Numerical Python的簡稱)是Python數值計算最重要的基礎包。大多數提供科學計算的包都是用Nu

資料基礎---《利用Python進行資料分析·第2版》第8章 資料規整:聚合、合併重塑

之前自己對於numpy和pandas是要用的時候東學一點西一點,直到看到《利用Python進行資料分析·第2版》,覺得只看這一篇就夠了。非常感謝原博主的翻譯和分享。 在許多應用中,資料可能分散在許多檔案或資料庫中,儲存的形式也不利於分析。本章關注可以聚合、合併、重塑資料的方法。 首先

資料基礎---《利用Python進行資料分析·第2版》第7章 資料清洗準備

之前自己對於numpy和pandas是要用的時候東學一點西一點,直到看到《利用Python進行資料分析·第2版》,覺得只看這一篇就夠了。非常感謝原博主的翻譯和分享。 在資料分析和建模的過程中,相當多的時間要用在資料準備上:載入、清理、轉換以及重塑。這些工作會佔到分析師時間的80%或更多。

利用python進行資料分析整數索引

《利用python進行資料分析》之整數索引 # -*- coding: utf-8 -*- """ Created on Sat Nov 17 22:23:46 2018 @author: muli """ from pandas import Series,Dat

利用Python進行資料分析》——Chapter9:資料聚合分組

對資料集進行分組並對各組應用一個函式,這是資料分析的一個重要環節,將資料集準備好後,接下來的任務就是計算分組統計或深成透視表 GroupBy技術(分組) 建立一個GroupBy物件,再呼叫GroupBy的各種方法計算相關資料 df = pd.DataFrame(

利用python進行資料分析——基礎篇】利用Python處理分析Excel表中資料實戰

作為一個學習用Python進行資料分析的新手來說,通過本文來記錄分享一些我在用Python中的pandas、numpy來分析Excel表中資料的資料清洗和整理的工作,目的是熟悉numpy以及pandas基礎操作,所有操作利用Excel均可以方便實現。備註:本文中使用的是ipy

Numpy基礎 --陣列向量計算 利用Python進行資料分析讀書筆記

Numpy 陣列和向量計算 程式碼下載 import numpy as np #ndarray物件 陣列 NumPy陣列 建立ndarray data1=[6,7.5,8,0,1] arr1=np.array(data1) a

利用python進行資料分析.第三版》 第七章 資料清洗準備

7.1 處理缺失資料 缺失資料在pandas中呈現的方式有些不完美,但對於大多數使用者可以保證功能正常。對於數值資料,pandas使用浮點值NaN(Not a Number)表示缺失資料。我們稱其為哨兵值,可以方便的檢測出來。 處理缺失資料有以下幾個方

利用python進行資料分析》讀書筆記案例二:全美嬰兒姓名

這份資料包含了從1880到2010年間的嬰兒名字頻率資料,其資料形式是多個txt檔案,且用逗號分隔,可以用pandas.read_csv將其載入到DataFrame中,並且用pandas.concat將所有資料都組裝到一個DataFrame。  years=range

利用Python進行資料分析·第2版》第7章 資料清洗準備

在資料分析和建模的過程中,相當多的時間要用在資料準備上:載入、清理、轉換以及重塑。這些工作會佔到分析師時間的 80% 或更多。有時,儲存在檔案和資料庫中的資料的格式不適合某個特定的任務。許多研究者都選擇使用通用程式語言(如 Python、Perl、R 或 Java)或 UNI