본문 바로가기
데이터 분석/시각화

Matplotlib을 이용하여 바 차트(Bar Chart)에 선 그래프 추가하기.

by 부자 꽁냥이 2021. 8. 5.

반갑습니다~ 꽁냥이에요. 데이터 시각화를 하다 보면 막대그래프 또는 바 차트에 라인(선 그래프)을 추가해야 할 필요가 있는데요. 이번 포스팅에서는 Matplotlib을 이용하여 바 차트에 라인을 추가하는 방법에 대해서 알아보겠습니다.

 

바 차트와 선 그래프를 그리는 방법에 대해서는 아래에 포스팅해두었으니 참고하세요~

 

바 차트 그리기

[바 차트(Bar chart)] 1. Matplotlib을 이용하여 바 차트, 수평 바 차트 그리기

[바 차트(Bar chart)] 2. Matplotlib을 이용하여 바 차트 꾸미기

[바 차트(Bar chart)] 3. Matplotlib 바 차트 번외 - 막대에 그라데이션 적용하기

[바 차트(Bar chart)] 4. Matplotlib을 이용하여 그룹 바 차트(Grouped bar chart) 그리기

[바 차트(Bar chart)] 5. Matplotlib을 이용하여 스택 바 차트(Stacked bar chart) 그리기

선 그래프 그리기

[선 그래프(Line graph)] 1. Matplotlib을 이용하여 선 그래프 그리기

[선 그래프(Line graph)] 2. Matplotlib을 이용하여 선 그래프 꾸미기

[선 그래프(Line graph)] 3. Matplotlib을 이용하여 여러 개 선 그래프 겹쳐 그리기

 

여기에서 다루는 내용은 다음과 같습니다.

 

1. 하나의 데이터로 바 차트와 라인 차트 표시하기

2. 다른 데이터로 바 차트와 라인 차트 표시하기


   1. 하나의 데이터로 바 차트와 라인 차트 표시하기

먼저 데이터 하나를 바 차트와 라인 차트로 표현하는 방법을 알아볼게요. 먼저 필요한 모듈을 임포트하고 예제용 데이터를 만들어줍시다.

 

import matplotlib.pyplot as plt
import seaborn as sns

 

day = ['Mon', 'Tue','Wed', 'Thu','Fri','Sat','Sun']
temp = [33, 29, 26, 36, 37, 32, 25]
num_icecream = [1000, 2000, 1100, 900, 1500, 1550, 2200]

 

이제 바 차트와 선 그래프를 그려보는 방법을 알아봅시다. 쉽습니다. 그냥 바 차트와 선 그래프 동시에 그리면 됩니다. 설명은 주석으로 대체할게요~

 

fig = plt.figure(figsize=(8,8)) ## Figure 생성 
fig.set_facecolor('white') ## Figure 배경색 지정

colors = sns.color_palette('summer', len(day)) ## 바 차트 색상

xtick_label_position = list(range(len(day))) ## x축 눈금 라벨이 표시될 x좌표
plt.xticks(xtick_label_position, day) ## x축 눈금 라벨 출력

plt.bar(xtick_label_position, num_icecream, color=colors) ## 바차트 출력
plt.plot(xtick_label_position, num_icecream, color='b',
         linestyle='--', marker='o') ## 선 그래프 출력
plt.title('Sales Icecream for Days', fontsize=20)
plt.show()

 

위 코드를 실행하면 아래와 같이 바 차트와 선 그래프가 예쁘게 그려진 것을 알 수 있습니다.

 


   2. 다른 데이터로 바 차트와 라인 차트 표시하기

이번에는 서로 다른 두 데이터를 하나는 바 차트 다른 하나는 선 그래프로 그려보겠습니다. 앞에서 살펴본 경우와 다른 점은 두 데이터가 다르기 때문에 단위가 다를 수 있어서 이중 y축을 사용해야 합니다. 아래 코드는 하나의 축(ax1)에 바 차트를 그리고 또 다른 축(ax2)에 선 그래프를 그립니다. 설명은 주석으로 대체하겠습니다.

 

fig = plt.figure(figsize=(8,8)) ## Figure 생성 
fig.set_facecolor('white') ## Figure 배경색 지정
ax1 = fig.add_subplot() ## axes 생성

colors = sns.color_palette('summer', len(day)) ## 바 차트 색상

xtick_label_position = list(range(len(day))) ## x축 눈금 라벨이 표시될 x좌표
ax1.set_xticks(xtick_label_position) ## x축 눈금 
ax1.set_xticklabels(day) ## x축 눈금 라벨
ax1.bar(xtick_label_position, num_icecream, color=colors) ## 바차트 출력

color = 'blue'
ax2 = ax1.twinx() ## 새로운 axis 생성
ax2.plot(xtick_label_position, temp, color=color, linestyle='--', marker='o') ## 선 그래프 
ax2.tick_params(axis='y', labelcolor=color) ## 눈금 라벨 색상 지정

plt.title('Sales Icecream and Temperature for Days', fontsize=20)
plt.show()

 

위 코드를 실행해보세요~

 

 

예쁘게 잘 그려졌어요~ ^0^


이번 포스팅에서는 바 차트와 선 그래프를 동시에 그리는 방법을 알아보았습니다. 오늘 배운 것은 데이터를 시각화할 때 많이 사용되니까 알아두시면 좋아요~ 지금까지 꽁냥이의 글 읽어주셔서 감사합니다. 안녕히 계세요~

 


댓글


맨 위로