Pandas 是 Python 生態系中,適合用來做資料分析或機器學習的套件,上一篇文章介紹 Pandas 中對新手相當友善的繪圖函數 plot( )
,讓我們能夠快速完成資料視覺化,然而,有的使用者對於線條、圖形有更多想法需要更多自定義的操作,此時,可以搭配 Python 另一個主攻視覺化的套件 Matplotlib 一起操作。
Matplotlib 是 Python 中一個強大的繪圖套件,可以單獨匯入資料或結合 Pandas,自行定義想要的圖表和款式,除了可以製作基本的折線圖、長條圖、散佈圖等 2D 繪圖外,也能支援部分 3D 的繪圖,寫法和 Pandas 中 plot()
函數大致相同,使用時須確定環境已安裝 Matplotlib 函式庫!
pip install matplotlib
。pip list
,查看是否有 Matplotlib。matplotlib.pyplot
import pandas as pd
import matplotlib.pyplot as plt
# 方法一:結合pandas
data = {'month':['Jan','Fab','Mar','Apr','May','Jun','Jul','Aug','Sep'],
'Taipei':[16,17,19,22,25,28,30,29,27],
'Kaohsiung':[19,20,23,25,27,28,32,30,28]}
df = pd.DataFrame(data)
plt.title('Monthly Average Temperature Comparison') # 標題名稱
plt.plot(df['month'],df['Taipei'],label='Taipei',marker='s',linestyle=':') # 線條1 Taipei
plt.plot(df['month'],df['Kaohsiung'],label='Kaohsiung',marker='o') # 線條2 Kaohsiung
plt.ylabel('degree(°C)') # Y軸標籤
plt.legend()
plt.show()
# 方法二:自定義資料
month = ['Jan','Fab','Mar','Apr','May','Jun','Jul','Aug','Sep']
taipei = [16,17,19,22,25,28,30,29,27]
Kaohsiung = [19,20,23,25,27,28,32,30,28]
plt.title('Monthly Average Temperature Comparison')
plt.plot(month,taipei,label='Taipei',marker='s',linestyle=':')
plt.plot(month,Kaohsiung,label='Kaohsiung',marker='o')
plt.ylabel('degree(°C)')
plt.legend()
plt.show()
import pandas as pd
import matplotlib.pyplot as plt
data = {'city':['Taipei','New Taipei','Taoyuan','Taichung','Tainan','Kaohsiung'],
'population':[2.5,4.03,2.3,2.83,1.85,2.73]}
df = pd.DataFrame(data)
plt.title('Population of Taiwan six cities')
plt.bar(df['city'],df['population'],color='#faebd7',edgecolor='#fa8072',linewidth=2)
plt.ylabel('population(million)')
plt.show()
import pandas as pd
import matplotlib.pyplot as plt
data = {'price':[50,80,100,120,150,180,200,230,250,300],
'sales':[100,90,80,70,60,30,20,15,10,0]}
df = pd.DataFrame(data)
plt.title('Price & Sales Analysis')
plt.scatter(df['price'],df['sales'],marker='s',color='#5f9ea0')
plt.ylabel('price(TWD)')
plt.show()
雖然 Matplotlib 具備許多自行定義的操作,能製作出漂亮的圖表,可以結合 Pandas 也可以自訂資料,但缺點是程式碼的行數會非常多,因此,大家可以視需求決定資料視覺化的方式。如果有任何不理解、錯誤或其他方法想分享的話,歡迎留言給我!喜歡的話,也歡迎按讚訂閱唷!
我是 Eva,一位正在努力跨進資料科學領域的女子!我們下一篇文章見!Bye Bye~
【本篇文章將同步更新於個人的 Medium,期待與您的相遇!】