今天會開始介紹在做人工智慧時,常使用到的函式庫,這一部分會多介紹一些,因為在資料分析時是相當重要的工具,所以接下來會一天介紹一個函式庫,直接把它學起來!
圖片來源
簡單來說Matpotlib是一個強大python繪圖工具,也就是它可以將資料視覺化,資料視覺化是相當重要的,當我們在查看訓練資料時,可以利用它來視覺化資料,使我們比較好觀察資料的走向或者相關度。
Matpotlib有兩個重要的模組:
1.Pylab:Matlab的python版本。
2.Pyplot:呼叫NumPy的函式來做計算,再以圖形方式呈現。
import matplotlib.pyplot as plt
import numpy as np
1.基本直線
x = np.linspace(-10, 10,50) #np.linspace(開始,結束,樣本數)
y = 2*x + 10
plt.plot(x, y) #畫出(x,y)的曲線
plt.show() #顯示圖
輸出:
2.加入第二條線(同時改變第二條顏色、寬度、樣貌,是可以自己選其他樣子的)
x = np.linspace(-10, 10,50) #np.linspace(開始,結束,樣本數)
y1 = 2*x + 10
y2 = x**2
plt.plot(x, y1)
plt.plot(x, y2, color='black', linewidth=4.0, linestyle='--')#color顏色、linewidth寬度、linestyle線的樣子
plt.show()
輸出:
3.資訊標示
#plt.xlabel plt.tilte plt.legned
x = np.linspace(-4, 4,50) #np.linspace(開始,結束,樣本數)
ysin = np.sin(x) #製作sin波形
ycos = np.cos(x) #製作cos波形
plt.plot(x,ysin)
plt.plot(x,ycos)
plt.xlabel('x') #x軸名稱
plt.ylabel('y') #y軸名稱
plt.title('title') #標題
plt.legend(['sin','cos']) #左下角的圖示
輸出:
4.XY軸自己定義
x = np.arange(0, 2* np.pi,0.1) #每次+0.1,上下限0~6.28
new_ticks = np.linspace(0,10,11) #從0數到10,總共有11個樣本
y = np.sin(x)
plt.xticks(new_ticks) #代表重新定義x座標"刻度"
plt.yticks([-1,-0.5,0,0.5,1],[r'really bad',r'bad',r'normal',r'good',r'very good']) #重新定義y做鏢刻度,在對應的點上刻上文字
plt.plot(x,y)
輸出:
5.繪製多個子圖subplot
#subplot
x = np.linspace(-10, 10,50) #np.linspace(開始,結束,樣本數)
y2 = 2*x + 10
ysin = np.sin(x)
ycos = np.cos(x)
#subplot(numRows, numCols, plotNum),numRows是圖表被分的列數;numCols是被分的行數
plt.subplot(2,2,1) #將原本的大區塊分成2*2等分,其中左上為1
plt.plot(x,ysin)
plt.title('sin')
plt.subplot(2,2,2) #右上為二
plt.plot(x,y2)
plt.title('y2')
plt.subplot(2,2,3) #左下為三
plt.plot(x,ycos)
plt.title('cos')
plt.show()
輸出:
6.畫圖(柱狀圖、圓餅圖)
柱狀圖:
import matplotlib.pyplot as plt
price = [500000,300000,430000,150000] #資料
plt.ylabel('價格') #y座標名稱
plt.title('JOHN國各區域每坪價格') # 新增標題
plt.xticks(range(4),['北區','中區','南區','東區']) # 自定義刻度標籤
plt.ylim([100000,700000]) # 設定Y軸的刻度範圍(下限100000,上限700000)
plt.bar(range(4), price, 0.4,color='r', alpha = 0.8)#1.x軸4個值2.y軸的數值3.柱子大小(預設是1)4.顏色
for x,y in zip(range(4),price): #用zip才可以把他們包起來,同時跌代
plt.text(x,y+10000,'%s' %y,ha='center')
# 顯示圖形
plt.show()
輸出:
圓餅圖:
labels = ["北區","中區","南區","東區"]
price = [500000,300000,430000,150000]
explode_p = (0.1, 0, 0, 0) #讓北區浮出0.1
plt.pie(price , labels = labels,explode = explode_p ,autopct='%1.1f%%') #1.數值2.名稱標示3.讓想要浮出的那塊浮起4.標示數值比例,並設定想要的位數
plt.axis('equal') #讓X軸、Y軸距有相同長度,讓它變成正圓
plt.show()
輸出:
明天會接著介紹pandas,也是個好用的函式庫,明天要記得回來哦!加油加油!