개발은 처음이라 개발새발

손흥민 프리미어리그 시즌별 공격포인트 면적그래프로 나타내보기[python/matplotlib] 본문

파이썬/판다스

손흥민 프리미어리그 시즌별 공격포인트 면적그래프로 나타내보기[python/matplotlib]

leon_choi 2022. 7. 10. 10:13
반응형

안녕하세요, 개발새발입니다. 

 

저는 최근에 일을 하면서 프리미어리그에 흠뻑 빠지게 돼 22/23 시즌을 앞두고 다끝난 21/22시즌을 다시보기 하고 있습니다. 그중에서 득점왕을 차지한 손흥민 선수의 경기를 많이 챙겨보고 있는데요. 이번 시간에는 지난 7년간 프리미어리그에서 활약 중인 손흥민 선수의 공격포인트(득점, 어시스트) 기록은 면적 그래프로 그려보도록 하겠습니다.

 

import pandas as pd
import matplotlib.pyplot as plt

#한글 처리
from matplotlib import font_manager, rc
font_path = "c:/windows/Fonts/malgun.ttf" #한글 폰트 경로
font_name = font_manager.FontProperties(fname=font_path).get_name()
rc('font', family = font_name)

dict_data = {'득점':[4,14,12,12,11,17,23],
             '어시스트':[1,6,6,6,10,10,7]}

df_son = pd.DataFrame(dict_data, index=['2015-2016','2016-2017','2017-2018','2018-2019',
                                        '2019-2020','2020-2021','2021-2022'])

print(df_son)

plt.style.use('ggplot')

df_son.plot(kind='area',stacked=False, alpha = 0.2) #False는 누적되지 않는다


plt.title('손흥민 프리미어리그 시즌별 공격포인트', size = 20)
plt.ylabel('공격포인트', size=15)
plt.xlabel('시즌', size=15)
plt.legend(loc='best',fontsize =10) #범례설정
plt.ylim(0,40) #y축 범위 설정
plt.show()

면적그래프의 경우 kind= 'area' 코드를 통해 만들 수 있는데요. 면적 그래프는 또 한가지로 stacked=' ?? '를 적어야 합니다. 물음표 안에는 False와 True가 들어가는데요. False를 할 경우 서로 다른 항목의 그래프들이 누적되지 않습니다. 반면에 True의 경우는 누적이 돼 표현됩니다. 저희는 이번에 손흥민 선수의 공격포인트. 즉, 득점과 어시스트의 합산을 표현해보고 싶으니 False 보다는 True를 적용하는 게 취지에 더 맞겠죠? 그러면 True로 변경해 그래프를 그려보겠습니다.

 

import pandas as pd
import matplotlib.pyplot as plt

#한글 처리
from matplotlib import font_manager, rc
font_path = "c:/windows/Fonts/malgun.ttf" #한글 폰트 경로
font_name = font_manager.FontProperties(fname=font_path).get_name()
rc('font', family = font_name)

dict_data = {'득점':[4,14,12,12,11,17,23],
             '어시스트':[1,6,6,6,10,10,7]}

df_son = pd.DataFrame(dict_data, index=['2015-2016','2016-2017','2017-2018','2018-2019',
                                        '2019-2020','2020-2021','2021-2022'])

print(df_son)

plt.style.use('ggplot')

df_son.plot(kind='area',stacked=True) #True는 누적된다

plt.title('손흥민 프리미어리그 시즌별 공격포인트', size = 20)
plt.ylabel('공격포인트', size=15)
plt.xlabel('시즌', size=15)
plt.legend(loc='best',fontsize =10)
plt.ylim(0,40) #y축 범위 설정
plt.show()

네 이렇게 득점과 어시스트가 누적된 면적그래프를 만들어봤습니다. 이렇게 보니 손흥민 선수는 시즌을 거듭할수록 공격포인트가 상승되는 것을 확인할 수있네요. 다가오는 시즌도 좋은 활약을 기대해보겠습니다.

반응형