Matplotlib

Matplotlib 讓 Data能夠以視覺化、圖像化的方式呈現。在這裡先介紹 matplotlib內的 pyplot API,它強大的地方在於可以用簡單的函式就快速產生我們想要的圖像。

使用import matplotlib.pyplot as plt方式匯入pyplot模組

匯入資料及呈現

若已經俱備了x及y兩筆資料,那麼透過以下方式就能快速產生圖像:

1
2
plt.plot(x,y)   # 將x及y的資料內容匯入
plt.show() # 將資料呈現出來
需特別注意,上面的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
2
3
4
5
6
plt.hist(first)
plt.show()
plt.clf() # 清除第一筆資料

plt.hist(second) # 匯入第二筆資料
plt.show() # 這樣就會改成呈現第二筆資料的圖像

修改圖像的呈現方式

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) 可在自定義的位置放上想要說明的文字

參考連結

  1. Matplotlib Tutorial
  2. Data Camp 課程: Intermediate Python for Data Science