안녕하세요. 비스카이비전입니다.
오늘은 영국 프리미어 리그(EPL)에서 빅6라고 불리는 팀들의 2010년 이후 순위를 비교해보는 그래프를 그려보도록 하겠습니다. 우선 EPL에서 빅6라고 불리는 팀은 다음과 같습니다.
맨시티, 리버풀, 맨유, 아스날, 첼시, 토트넘
빅6 순위 추이 선 그래프
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 = {'맨시티':[3, 1, 2, 1, 2, 4, 3, 1, 1, 2, 1, 1],
'리버풀':[6, 8, 7, 2, 6, 8, 4, 4, 2, 1, 3, 2],
'맨유': [1, 2, 1, 7, 4, 5, 6, 2, 6, 3, 2, 6],
'아스날':[4, 3, 4, 4, 3, 2, 5, 6, 5, 8, 8, 5],
'첼시': [2, 6, 3, 3, 1, 10,1, 5, 3, 4, 4, 3],
'토트넘':[5, 4, 5, 6, 5, 3, 2, 3, 4, 6, 7, 4]}
df_big6 = pd.DataFrame(dict_data,
index=['2010-11', '2011-12', '2012-13', '2013-14', '2014-15', '2015-16', '2016-17', '2017-18', '2018-19', '2019-20', '2020-21', '2021-22'])
print(df_big6)
df_big6.plot(kind='line', figsize=(20, 5))
plt.title('EPL 빅6 2010년 이후 순위 비교')
plt.ylabel('순위')
plt.show()
각 팀의 순위 추이를 확인하실 수 있습니다. 6개 팀의 정보를 한 번에 그리니 가독성이 좋진 않네요. 자세히 살펴보면 맨시티가 그래도 가장 높은 순위에 일관성 있게 위치하고 있음을 알 수 있습니다.
빅6 순위 비교 막대 그래프
이번에는 동일한 데이터를 가지고 막대 그래프를 그려보겠습니다. df_big6.plot(kind='line', figsize=(20, 5))에서 kind='line'을 kind='bar'로 바꾸기만 하면 됩니다.
막대 그래프로 그리고 나니, 매 시즌마다 각 팀의 순위를 비교하기에 좋아졌습니다. 그렇지만 시즌이 너무 많아서 가독성이 떨어지긴 마찬가지입니다.
빅6 평균 순위 비교 막대 그래프
위 두 그래프 모두 나름의 정보를 제공하지만, 2010년 이후 각 팀의 평균 순위를 보여주면 훨씬 더 의미 있는 정보를 제공할 수 있을 것 같습니다. 수평 막대그래프로 그려보겠습니다. 수평 막대그래프를 그릴 때는 데이터프레임 plot 메소드의 kind 옵션을 barh로 설정해주셔야 합니다.
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 = {'맨시티':[3, 1, 2, 1, 2, 4, 3, 1, 1, 2, 1, 1],
'리버풀':[6, 8, 7, 2, 6, 8, 4, 4, 2, 1, 3, 2],
'맨유': [1, 2, 1, 7, 4, 5, 6, 2, 6, 3, 2, 6],
'아스날':[4, 3, 4, 4, 3, 2, 5, 6, 5, 8, 8, 5],
'첼시': [2, 6, 3, 3, 1, 10,1, 5, 3, 4, 4, 3],
'토트넘':[5, 4, 5, 6, 5, 3, 2, 3, 4, 6, 7, 4]}
df_big6 = pd.DataFrame(dict_data,
index=['2010-11', '2011-12', '2012-13', '2013-14', '2014-15', '2015-16', '2016-17', '2017-18', '2018-19', '2019-20', '2020-21', '2021-22'])
df_big6 = df_big6.transpose()
df_big6['rank_mean'] = df_big6.mean(axis=1)
df_mean_rank_big6 = df_big6[['rank_mean']].sort_values(by='rank_mean', ascending=False)
df_mean_rank_big6.plot(kind='barh')
plt.title('EPL 빅6 2010년 이후 평균 순위 비교')
plt.xlabel('평균 순위')
plt.show()
이렇게 평균 순위 막대 그래프를 그리고 보니까 맨시티가 다른 빅6 팀에 비해 EPL에서 2010년 이후 압도적인 퍼포먼스를 보여줬다는 것이 명확하게 보입니다. 빅6 중에서는 아스날이 가장 약한 모습을 보여줬다는 것도 확인할 수 있습니다. 또한 6개 팀 모두 빅6라고 불리기에는 부족함이 없다는 것도 알 수 있습니다. 평균 5위 이내의 순위를 보여줬습니다. 적어도 유로파리그에는 진출할 만한 팀들이라는 것입니다.
관련 글
[python+pandas] 내 블로그 일별 페이지뷰 수(구글 애널리틱스) 선 그래프, 막대 그래프, 히스토그램, 박스 플롯 그리기
'Dev > python' 카테고리의 다른 글
[selenium] 셀레니움 크롤링 준비, 크롬 드라이버 다운로드 (0) | 2022.07.01 |
---|---|
[python] datetime 모듈 strftime 메소드, 포맷(format) 코드 정리 (0) | 2022.06.30 |
[pandas] Auto MPG 데이터셋 소개 (0) | 2022.06.29 |
[pandas] 이전 데이터와 비교할 때 유용한 데이터프레임 shift() 메소드 (1) | 2022.06.29 |
[pandas] 데이터프레임 컬럼명 또는 행 인덱스 바꾸는 방법 (0) | 2022.06.28 |
[matplotlib] 그래프에 화살표 및 텍스트 삽입하기 (0) | 2022.06.27 |
[matplotlib] 그래프의 y축 범위 지정하는 방법 (0) | 2022.06.27 |
[matplotlib] 그래프 스타일 바꾸기 (0) | 2022.06.26 |