Professional Documents
Culture Documents
基本-6
-----------------------------------------------------------------------------------------------------------------------------------
(一) 目標:
1. 資料視覺化呈現(使用 Matplotlib)
---------------------------------------------------------------------------------------------------------------------------------
資料視覺化之目的:
* 最後一步呈現你的成果之外,
* 或是降維之後用資料視覺化去看資料在空間中的分佈,來決定下一步的分析要怎麼做。
一般來說我們在進行資料科學和機器學習分析的過程中我們會先使用資訊視覺化工具來了解整個資
料集的特色,並針對資料進行後續的處理和特徵選取,所以說資料視覺化不僅能呈現資料分析的結果,
對於資料分析的過程也十分重要。
Python 資料視覺化主要有三大套件:
Matplotlib (Matplot)
Seaborn
Plotly
matplotlib 官網
優點:
* 相較於其他視覺化套件,matplot 算是最歷史悠久,因此有很多的教學文章或是範例可參考。
* 很容易在上面外包一層以提供更好的預設值或是自己修改預設值。
* 畫圖功能最齊全,基本上沒什麼圖表畫不出來的
缺點:
* 畫圖指令複雜
教學:
1. 折線圖使用( plt.plot)
* 常用是設定線條的顏色和樣式,其各個參數的意義與使用說明如下:
欲用來畫圖之水平和垂直軸的資料。
x, y
其參數型別可為 list, tuple, array, Series 等皆可。
marker 定義點的型式。放在單引號中。
(2) linestyle
(3) marker
plt.title("title") #圖表標題
* 控制座標軸的範圍--lim 和 axis:
* 控制座標軸的刻度--ticks:
示範用日期來當 x 軸的座標
* 在圖表上放入圖例—legend 可區分出每個圖形與對應的數據名稱
plt.legend(loc=0)
plt.legend(loc='best')
--------------------------------------------------------------------------------------------------------------------------
一開始我們先只放一個參數,這樣只會有 y 的資料
#只放一個參數,這樣只會有 y 的資料
plt.plot([1, 2, 3, 4])
plt.show()
#放入參數—y +lw
plt.plot([1, 2, 3, 4], lw=3)
plt.show()
#放入參數—y +x
plt.plot([2,3,4,5],[1,4,6,9])
plt.show()
#放入參數—y +x+線顏色和點型式
plt.plot([2,3,4,5],[1,4,6,9],'ro')
plt.xlabel('x-label')
plt.ylabel('y-label')
plt.show()
#繪製不同型式顏色的曲線
[HW]先產出數值介於 0~5 的 array,並以 0.2 為間隔;分別畫出 y=x, y=x², y=x³ 的資料,格式定義如下:r
代表紅色、兩個-代表虛線;g 代表綠色、s 代表方塊;b 代表藍色,^代表三角形。
t=np.arange(0., 5., 0.2)
print("t= " + str(t))
t= [ 0. 0.2 0.4 0.6 0.8 1. 1.2 1.4 1.6 1.8 2. 2.2 2.4 2.6 2.8
3. 3.2 3.4 3.6 3.8 4. 4.2 4.4 4.6 4.8]
plt.plot(t, t, 'r--', t, t**2, 'gs', t, t**3, 'b^')
plt.show()
#在一個圖表內繪製多個圖型--繪製多個圖表並列做比較用途,可使用 subplot
x=np.arange(0.,5.,0.1)
y1=np.sin(2*np.pi*x)
y2=np.cos(2*np.pi*x)
plt.subplot(211)
plt.plot(x,y1,'b-.')
plt.subplot(212)
plt.plot(x,y2,'r--')
plt.show()
2. 長條圖使用( plt.bar)
* 常用是設定線條的顏色和樣式,其各個參數的意義與使用說明如下:
欲用來畫圖之水平和垂直軸的資料。
x, y
其參數型別可為 list, tuple, array, Series 等皆可。
color 定義長條顏色
linewidth 定義長條邊框寬度。
edgecolor 定義長條邊框顏色
#放入參數—y +x+垂直長條圖
x=[4, 4, 7, 7, 8, 9, 10, 10, 10, 11, 12, 12, 12, 12]
y=[1, 10, 4, 22, 16, 10, 18, 26, 34, 17, 2, 28, 14, 20]
plt.bar(x,y) #<Container object of 14 artists>
plt.show()
#放入參數—y +x+水平長條圖
x=[4, 4, 7, 7, 8, 9, 10, 10, 10, 11, 12, 12, 12, 12]
y=[1, 10, 4, 22, 16, 10, 18, 26, 34, 17, 2, 28, 14, 20]
plt.barh(x,y)
plt.show()
#放入參數—y +x+資料的堆疊關係
x=np.arange(5)
y1=np.random.randint(1, 20, 5)
y2=np.random.randint(1, 20, 5)
y3=np.random.randint(1, 20, 5)
plt.title("Stacked Bar Chart", fontsize=18, color='b')
plt.bar(x,y1,color='b',label="Data 1")
plt.bar(x,y2,color='g',label="Data 2", bottom=y1)
plt.bar(x,y2,color='r',label="Data 3", bottom=y1+y2)
plt.legend(loc=0)
plt.show()
3. 散布圖(plt.scatter)
plt.scatter(x,y)
* 常用是設定線條的顏色和樣式,其各個參數的意義與使用說明如下:
欲用來畫圖之水平和垂直軸的資料。
x, y
其參數型別可為 list, tuple, array, Series 等皆可。
color 定義長條顏色
linewidth 定義長條邊框寬度。
edgecolor 定義長條邊框顏色
edgecolor 定義長條邊框顏色
#放入參數—y +x
x=[4, 4, 7, 7, 8, 9, 10, 10, 10, 11, 12, 12, 12, 12]
y=[1, 10, 4, 22, 16, 10, 18, 26, 34, 17, 2, 28, 14, 20]
plt.scatter(x,y)
plt.show()
4. 圓餅圖(plt.pie)
plt.pie(data)
* 常用是設定線條的顏色和樣式,其各個參數的意義與使用說明如下:
欲用來畫圖之資料。
data
其參數型別可為 list, tuple, array, Series 等皆可。
height, width (預設 0.8) 定義長條的高度(水平長條圖)或寬度(垂直長條圖)。
color 定義長條顏色
linewidth 定義長條邊框寬度。
5. 圖表優化
#圖表型式 style--方格
plt.style.use('ggplot')
plt.scatter(x,y)
plt.show()
#圖表型式 style--泡泡圖
N=20
x=np.random.rand(N)
y=np.random.rand(N)
colors=np.random.rand(N)
area=np.pi*(15*np.random.rand(N))**2
plt.scatter(x, y, s=area, c=colors, alpha = 0.3)
plt.show()
plt.savefig("Plt-2.png", dpi=300, format="png") #直接將圖表存檔
更多的畫圖例子可參考:Matplot Gallery https://matplotlib.org/gallery/index.html