데이터사이언티스트로 살아남기/시각화

[시각화] 파이썬 Matplotlib 이중 축 그래프 만들기

별수호자룰루 2024. 11. 20. 14:08

matplotlib 라이브러리를 활용하여 이중 축 그래프를 만들어보자.

엄청 자주 쓰는 차트가 아니라서 매번 잊어먹는데, 가끔 필요할때가 있어서 기록한다.

(더 효율적인 방법이 있다면 댓글로 알려주세요.)


이중 축 그래프를 사용하는 경우는

1. 시각화 하고 싶은 데이터의 단위가 다를 때.

2. 시각화 하고 싶은 데이터들의 스케일 차이가 클 때.


예를 들어 병원 주차장의 차량 대수와 수납 고객 수의 추세를 시각화 하는 경우,

차량과 고객의 단위와 스케일이 달라 같은 그래프에 표시하면 당연히 차량 수가 직선처럼 보인다.

이런 경우 이중 축 그래프로 추세 비교가 가능하다.

 

근데 대학 다닐 때, 이중축은 헷갈린다고 자주 안쓴다고 하시긴 했다.

오늘은 구분하기 쉽도록 축의 색상을 다르게 해보려고 한다.


 

fig, ax1 = plt.subplots(figsize=(12,6)) #전체 그래프 fig와 첫번째 축 ax1 선언

#첫번째 축에 대한 설정
ax1.plot(df['x축에 넣을 컬럼명'], df['첫번째 y축에 넣을 컬럼명'], color='blue', marker='o')
ax1.set_xlabel('x축명')
ax1.set_ylabel('y축명', color='blue') #y축 이름에 대한 색 지정
ax1.tick_params(axis='y', labelcolor='blue') #y축의 눈금 색 지정

ax2 = ax1.twinx() #두번째 축 선언 / 첫번째 축인 ax1을 기준으로 생성하겠다는 의미

#두번째 축에 대한 설정
ax2.plot(df['x축에 넣을 컬럼명'], df['두번째 y축에 넣을 컬럼명'], color='orange', marker='s')
ax2.set_ylabel('두번째 y축명', color='orange') #두번째 y축 이름에 대한 색 지정
ax2.tick_params(axis='y', labelcolor='orange') #두번째 y축 눈금 색 지정

plt.title('그래프의 제목')
fig.tight_layout() 
plt.show() #그래프 출력