[Python]快速畫出分析圖表-使用Matplotlib套件

文、意如

將收集的數據資料轉變成圖表將數據圖形化,能更清楚呈現易閱讀的文件,
常見的圖表類型有長條圖、圓餅圖、折線圖等…,要使用Python 快速畫出圖表,可以使用Matplotlib套件,
Matplotlib是一個在Python中非常強大的畫圖套件,幾乎所有的圖表都可以輕鬆的畫出來,
本篇會將以折線圖與圓餅圖作為範例。
看完這篇文章你會學到:
任務一:安裝 Matplotlib套件
任務二:製作折線圖
2.1 畫出2組資料折線圖
2.2 設定圖表中的屬性(顏色、線寬、線條樣式)
2.3 設定文字屬性(字體、大小)
任務三:製作圓餅圖

 

任務一:安裝 Matplotlib套件

先下載Anaconda(裡面包含了我們之後會常用到的工具,包含Python3、Spyder編輯器等,也會自動安裝Matplotlib套件)

Anaconda官方下載點

 

Anaconda download teaching

 

 

安裝好就可以開啟Spyder編輯器開始寫程式了。

如果寫完程式還無法顯示圖表時,有可能是Matplotlib套件未安裝,或是沒安裝好,此時可以使用pip的方式來安裝Matplotlib套件。

首先進入到命令提示字元cmd (按下右鍵以系統管理員身分執行)

 

Anaconda Command Prompt Characters

 

 

步驟一:

建議執行python -m pip install -U pip setuptools 進行升級,這樣之後下載套件就會是最新的版本。

 

步驟二:

接著鍵入python -m pip install matplotlib進行自動的安裝,系統會自動下載安裝包。

 

步驟三:

安裝完成後,可以用python -m pip list查看本機的安裝的所有模塊,確保Matplotlib已經安裝成功。

 

Matplotlib installation

 

 

步驟四:

接下來記得將spyder編輯器重新啟動,即可顯示圖表。

如果還是無法顯示圖表時,可以在以下路徑設定

Tools > Preferences > iPython console > Graphics > Graphics backend > Automatic

 

spyder editor_1

 

spyder editor_2

 

最後再將編輯器重新啟動即可正常顯示圖表。

任務二:製作折線圖

 

程式碼解析:

1. 匯入套件matplotlib.pyplot 取別名為mpt

import matplotlib.pyplot as mpt

 

2. 設定圖表中的x 軸為 (1~6) ,y 軸為(5千~1萬)

mpt.xlim(1,6) 
mpt.ylim(5000,10000)

 

3. 設定兩個變數datax 與 datay分別存入 x軸點的位置 與y軸點的位置

datax=[1,2,3,4,5,6] #x軸點的位置
datay=[7800,6500,7300,8120,6800,7650]#y軸點的位置

 

4. 使用套件中的plot方法畫上折線圖,並將x軸點的位置,y軸點的位置當參數帶進去

mpt.plot(datax,datay) #畫折線圖(x軸點的位置,y軸點的位置)

 

最後執行:

 

matplotlib line chart

 

 

完整程式碼:

import matplotlib.pyplot as mpt
mpt.xlim(1,6)
mpt.ylim(5000,10000)

datax=[1,2,3,4,5,6]
datay=[7800,6500,7300,8120,6800,7650]
mpt.plot(datax,datay)

 

2.1畫出2組資料折線圖:

 

1. 只要再新增一組資料即可

infox=[1,2,3,4,5,6]
infoy=[5600,6730,6320,5650,7750,8680]

 

2. 資料加上標題

mpt.plot(datax,datay,label="Taipei")

 

3. 加入圖例

mpt.legend()

 

4. 將圖表呈現在畫布上(有些版本不需要加入此行,也可以顯示)

mpt.show

 

matplotlib data line chart

 

 

完成程式碼:

import matplotlib.pyplot as mpt
mpt.xlim(1,6)
mpt.ylim(5000,10000)

datax=[1,2,3,4,5,6]
datay=[7800,6500,7300,8120,6800,7650]
mpt.plot(datax,datay,label="Taipei")

infox=[1,2,3,4,5,6]
infoy=[5600,6730,6320,5650,7750,8680]
mpt.plot(infox,infoy,label="Elan")

mpt.legend()
mpt.show
2.2 設定圖表中的屬性(顏色、線寬、線條樣式)

設定寬度linewidth為’8’ ,樣式linestyle為虛線”- -"

mpt.plot(infox,infoy,label="elan",linewidth=8,linestyle="--")

 

 

2.3 設定文字屬性(字體、大小)
先匯入套件
from matplotlib.font_manager import FontProperties
設定字體的路徑,及大小為12 到font_set變數中
font_set = FontProperties(fname=r"c:\windows\fonts\simsun.ttc", size=12)
將標題文字,套用font_set變數
mpt.title("各分店銷售圖",fontproperties=font_set)

 

完整程式碼:

import matplotlib.pyplot as mpt
from matplotlib.font_manager import FontProperties
mpt.xlim(1,6)
mpt.ylim(5000,10000)

datax =[1,2,3,4,5,6]
datay =[7800,6500,7300,8130,6800,7500]
mpt.plot(datax,datay,label="Taipei",color="green")

infox =[1,2,3,4,5,6]
infoy =[5670,6780,6324,7680,5600,7800]
mpt.plot(infox,infoy,label="elan",linewidth=8,linestyle="--")

mpt.legend()
font_set = FontProperties(fname=r"c:\windows\fonts\simsun.ttc", size=12)
mpt.title("各分店銷售圖",fontproperties=font_set)

mpt.show

 

matplotlib branch line chart

 

 

任務三:製作圓餅圖

 

matplotlib circle pie chart

 

 

程式碼解析:

匯入套件matplotlib.pyplot 取別名為 mpt
import matplotlib.pyplot as mpt

設定資料標題
labels=["food","clothes","live","play"]

設定每一個項目的大小比例
sizes=[20,10,20,15]

設定每一個項目的顏色
color=["green","blue","yellow","pink"]

設定特別要突出的資料(以範例來說藍色那塊要突出),所以將第二個參數設定0.2,當然要更突出的話可以將數字往上加

explode=(0,0.2,0,0)

設定百分比
autopct="%2.2f%%"

設定開始角度
startangle=90

設定是否要陰影
shadow="True"

顯示圖例
mpt.legend()

將畫好的圓餅圖顯示出來
mpt.show

最後呼叫mpt套件中的pie 方法,將剛剛的參數物都帶入進去。

mpt.pie(sizes,explode=explode,autopct="%2.2f%%",startangle=90,colors=color,shadow="True",labels=labels)

 

 

完整程式碼如下:

import matplotlib.pyplot as mpt

labels=["food","clothes","live","play"]
sizes=[20,10,20,15]
explode=(0,0.2,0,0)
color=["green","blue","yellow","pink"]

mpt.pie(sizes,explode=explode,autopct="%2.2f%%",startangle=90,colors=color,shadow="True",labels=labels)

mpt.legend()
mpt.show

 

Matplotlib circle pie chart code

 

了解完簡單易懂的分析圖表,就來更進階的學習靈活運用Python吧!

Yiru@Studio - 關於我 - 意如