matplotlib 을 이용한 선 그래프를 그릴때 하나의 그래프를 그리는 경우도 있지만 여러개의 선 그래프를 그려서 비교해야 하는 상황도 자주 발생한다.
21년과 22년의 연도별 매출액 비교를 하고자 한다고 해도 2개의 선 그래프를 그려야 할 필요가 생긴다 .
그래서 21년과 22년도 매출액을 비교 할 수 있도록 21년 매출액과 22년도의 매출액을 선 그래프로 그려 비교해 보려고 한다.
우선 21년도의 매출액과 22년도의 매출액 자료를 만들어 그래프를 그릴 준비를 한다.
1. 라이브러리 임포트 및 데이터 생성
import pandas as pd
import matplotlib.pyplot as plt
df = pd.DataFrame()
# 월
df['date'] = [str(x)+'월' for x in range(1,13)]
# 매출액
df['2022sales'] = [300,100,250,320,180,280,520,390,500,370,750,880]
# 매출액
df['2021sales'] = [200,50,50,120,180,200,320,490,700,470,650,780]
df
2. 그래프 그리기
그리고자 하는 그래프의 수만큼 plot 을 이용하여 그래프를 그려 준다. 그래프가 여러개라서 구분을 할 수 있는 label 을 표시하여 주었다.
fig = plt.figure(figsize=(9,5))
ax = fig.add_subplot()
# 오른쪽 숨김
ax.spines['right'].set_visible(False)
# 위쪽 숨김
ax.spines['top'].set_visible(False)
# 2021년 매출 그래프
plt.plot(df['date'], df['2021sales'], marker='o', ms='8', mec='r', mew='2', mfc='w', label='2021')
# 2022년 매출 그래프
plt.plot(df['date'], df['2022sales'], marker='x', ms='8', mec='b', mew='2', mfc='w', label='2022')
#label 표시
plt.legend()
plt.grid(alpha=0.5)
plt.title('연도별 매출액 ', pad=20, color='purple', fontsize=20)
plt.xlabel('월', color='b',fontsize=12, labelpad=10)
plt.ylabel('매출', color='b',fontsize=12, labelpad=10)
plt.show()
y축의 눈금 범위를 100 단위로 1,000 까지 표시하고 싶고 범례의 모습도 변경 하고자 한다.
# plt.figure(figsize=(9,5))
fig = plt.figure(figsize=(9,5))
ax = fig.add_subplot()
# 오른쪽 숨김
ax.spines['right'].set_visible(False)
# 위쪽 숨김
ax.spines['top'].set_visible(False)
# 2021년 매출 그래프
plt.plot(df['date'], df['2021sales'], marker='o', ms='8', mec='r', mew='2', mfc='w', label='2021')
# 2022년 매출 그래프
plt.plot(df['date'], df['2022sales'], marker='x', ms='8', mec='b', mew='2', mfc='w', label='2022')
#label 표시 속성 설정
plt.legend(ncol=1, fontsize=15, shadow=True, facecolor='ivory',edgecolor='k')
plt.grid(alpha=0.5)
plt.title('연도별 매출액 ', pad=20, color='purple', fontsize=20)
plt.xlabel('월', color='b',fontsize=12, labelpad=10)
plt.ylabel('매출', color='b',fontsize=12, labelpad=10)
# 축의 범위 지정
plt.ylim(0,1000)
# y축의 눈금 갯수 지정
plt.yticks(range(0,1000,100))
plt.show()
ylim 명령어로 축의 범위를 1,000 까지 설정하고
yticks 명령을 이용 눈금 간격을 100 단위로 설정 하였다.
범례의 속성은 다음과 같이 수정 할 수 있다.
- 열 개수 : plt.legend(ncol=열개수)
- 폰트 사이즈 : plt.legend(fontsize=폰트사이즈)
- 테두리 : plt.legend(frameon=True/False)
- 음영 : plt.legend(shadow=True/False)
- 바탕색 : plt.legend(facecolor=색상)
- 테두리색 : plt.legend(edgecolor=색상)
그래프를 통해서 비교해 보니
2021년도에 비해서 2022년도는 8월~10월을 제외하고는 매출이 상승한걸 한눈에 확인 할 수 있다.
'데이터시각화' 카테고리의 다른 글
막대 그래프(바그래프) 꾸미기 (0) | 2023.02.19 |
---|---|
막대 그래프(바그래프) 그리기 (0) | 2023.02.12 |
matplotlib 을 이용한 선 그래프 그리기(축숨기기, y값출력) (0) | 2023.02.03 |
주피터 노트북 그래프에서 한글 사용 방법 (0) | 2023.02.02 |
matplotlib 을 이용한 그래프 그리기(제목, 그리드, xy레이블) (0) | 2023.01.31 |