文、意如
將收集的數據資料轉變成圖表將數據圖形化,能更清楚呈現易閱讀的文件,
常見的圖表類型有長條圖、圓餅圖、折線圖等…,要使用Python 快速畫出圖表,可以使用Matplotlib套件,
Matplotlib是一個在Python中非常強大的畫圖套件,幾乎所有的圖表都可以輕鬆的畫出來,
本篇會將以折線圖與圓餅圖作為範例。
看完這篇文章你會學到:
任務一:安裝 Matplotlib套件
任務二:製作折線圖
2.1 畫出2組資料折線圖
2.2 設定圖表中的屬性(顏色、線寬、線條樣式)
2.3 設定文字屬性(字體、大小)
任務三:製作圓餅圖
任務一:安裝 Matplotlib套件
先下載Anaconda(裡面包含了我們之後會常用到的工具,包含Python3、Spyder編輯器等,也會自動安裝Matplotlib套件)
安裝好就可以開啟Spyder編輯器開始寫程式了。
如果寫完程式還無法顯示圖表時,有可能是Matplotlib套件未安裝,或是沒安裝好,此時可以使用pip的方式來安裝Matplotlib套件。
首先進入到命令提示字元cmd (按下右鍵以系統管理員身分執行)
步驟一:
建議執行python -m pip install -U pip setuptools 進行升級,這樣之後下載套件就會是最新的版本。
步驟二:
接著鍵入python -m pip install matplotlib進行自動的安裝,系統會自動下載安裝包。
步驟三:
安裝完成後,可以用python -m pip list查看本機的安裝的所有模塊,確保Matplotlib已經安裝成功。
步驟四:
接下來記得將spyder編輯器重新啟動,即可顯示圖表。
如果還是無法顯示圖表時,可以在以下路徑設定
Tools > Preferences > iPython console > Graphics > Graphics backend > Automatic
最後再將編輯器重新啟動即可正常顯示圖表。
任務二:製作折線圖
程式碼解析:
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軸點的位置)
最後執行:
完整程式碼:
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
完成程式碼:
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.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
了解完簡單易懂的分析圖表,就來更進階的學習靈活運用Python吧!
Yiru@Studio - 關於我 - 意如