Matplotlib 讓 Data能夠以視覺化、圖像化的方式呈現。在這裡先介紹 matplotlib內的 pyplot API,它強大的地方在於可以用簡單的函式就快速產生我們想要的圖像。
使用import matplotlib.pyplot as plt方式匯入pyplot模組
匯入資料及呈現
若已經俱備了x及y兩筆資料,那麼透過以下方式就能快速產生圖像:
1 | plt.plot(x,y) # 將x及y的資料內容匯入 |
需特別注意,上面的plt.plot()是產生 line-chart的方法,若我們想產生scatter-chart則是輸入plt.scatter()
Histogram
Histogram是最直接地看一筆數據的分佈的方式,若我有一筆班上學生成績的資料grade,透過輸入以下指令就能看見分佈:
1 | plt.hist(grade) |
pyplot會預設產生10個區塊,若想依情況調整區塊數量,則可加入bins參數:
1 | plt.hist(grade, bins=5) |
若有兩筆資料想要依序呈現,則需要清除第一筆資料後才能匯入第二筆,方法如下:
1 | plt.hist(first) |
修改圖像的呈現方式
Labels
plt.xlabel(year)定義x軸的資料名稱plt.ylabel(population)定義y軸的資料名稱plt.title(growth)命名該圖像的名稱
上例就會呈現出一個x軸為年份、y軸為人口數量的人口成長圖。
Ticks
若是想要修改x或y軸上資料呈現的名稱,就可以利用tick來修改。比如說原本x軸是1950,1960,1970三筆資料,我想改成民國年份的39,49,59,只需輸入以下程式:
1 | plt.xticks([1950, 1960, 1970], [39, 49, 59]) |
第一項參數為原來的資料,第二項參數為預修改成的資料,兩個Array的內容是根據相同的index互相對照的。
Scatter
plt.scatter(x, y, s=z)可將點狀圖中點的大小依據資料z變成不同的大小,資料愈大,點會愈大plt.scatter(x, y, c=col, alpha=0.8)則是可以將點變成不一樣的顏色,其中alpha為透明度。
上述的col也是一筆資料,比方說可能是一個含有每個國家對應到的洲的List,再透過一個dict來定義哪個洲會呈現哪個顏色。
plt.grid(True)可呈現出網格plt.text(x_index, y_index, content)可在自定義的位置放上想要說明的文字
參考連結
- Matplotlib Tutorial
- Data Camp 課程: Intermediate Python for Data Science