Python-使用Matplotlib完成資料視覺化

前言:我們進行數據分析時,若是缺乏工具將information轉換成圖片,以供他人一目了然地觀看,著為缺憾。除了分析師以外,會需要檢視數據的人通常都對我們分析的目標的所有屬性一知半解,只能由數字的比重來評判目標的屬性,此時難免就會發生雙方認知不對等的情形。而資料視覺化便能一定程度地降低這情況的嚴重性及發生機率。

簡介Matplotlib是Python程式語言及其數值數學擴展包 NumPy的可視化操作界面。能夠將數據藉由圖片的方式展現。

優點:圖形相較其他繪圖軟體好看、繪圖細節非常精細

缺點:高度依賴其他擴展模組、不易操縱繪圖細節、只適用於Python




下載過程(需先安裝Python)

先進入terminal,依照下列的步驟輸入(強烈建議此處一同將Numpy Download)

----------------------------------------------------------------------------------
  • pip install matplotlib
  • $ pip install numpy
----------------------------------------------------------------------------------

原則上過程不會出什麼問題,如果Python版本過舊的話,可能就會在下載過程要求更新。

之後再進入Python的對話式互動介面,而此處建議初學者會先載入這兩個模組,因為較常用到。但變成熟手之後建議培養import exlicitly的習慣,能夠讓命名空間乾淨點。

----------------------------------------------------------------------------------
  • $ python
  • >>>import matplotlib.pyplot as plt # 使用matplotlib.pyplot模塊,並縮寫成plt
  • >>>import numpy as np # 使用numpy模塊,並縮寫成np
----------------------------------------------------------------------------------

之後我們會依照需求,決定需要分析的數據適合的圖形,然後在載入相對應的函數,下文將介紹幾種常用的圖形及幾種常更動的繪圖細節

  • 曲線圖plot
  • 散點圖scatter
  • 長條圖hist

曲線圖

----------------------------------------------------------------------------------
  • x = np.linspace(-1, 1, 50) # 使用linspace定義x,範圍是(-1,1),個數是50個
  • y = np.sin(x)+2.71828
  • plt.plot(x, y) # 使用plt.plot來畫x-y曲線
  • plt.show() # 使用plt.show()來顯示圖像
----------------------------------------------------------------------------------

















---------------------------------------------------------------------------------- 


散點圖


----------------------------------------------------------------------------------

  • n = 1024 # data size 
  • X = np.random.normal(0, 1, n) # 每一個點的X值 
  • Y = np.random.normal(0, 1, n) # 每一個點的Y值 
  • T = np.arctan2(Y,X) # for color value
  • plt.scatter(X, Y, s=75, c=T, alpha=.5) # 輸入X和Y,size=75,顏色為T,color map用默認值,透明度alpha 為 50%。
  • plt.xlim(-1.5, 1.5) #  定義x軸顯示範圍
  • plt.xticks(()) # ignore xticks #  隱藏x坐標軸
  • plt.ylim(-1.5, 1.5) #  定義y軸顯示範圍
  • plt.yticks(()) # ignore yticks #  隱藏y坐標軸
  • plt.show()
----------------------------------------------------------------------------------
















---------------------------------------------------------------------------------- 


長條圖

----------------------------------------------------------------------------------
  • a,b = 100, 15 
  • x = a + 100 * np.random.randn(10000)
  • n, bins, patches = plt.hist(x, 50, normed=1, alpha=0.75) 
  • plt.show()
---------------------------------------------------------------------------------- 





















---------------------------------------------------------------------------------- 


此連結詳細記載了常用的參數,有需要時可供查閱,連結

沒有留言:

張貼留言