본문 바로가기
Python

[Python] Python으로 막대 그래프 그리기

by teamnova 2023. 4. 9.

안녕하세요.
Python에서 matplotlib 라이브러리와 numpy 라이브러리를 사용해서 막대그래프를 그리는 예제를 진행하겠습니다.

주피터 노트북에서 진행해보겠습니다.

1. 수직 막대그래프

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(4)
years = ['2019', '2020', '2021', '2022']
values = [100, 400, 700, 1000]

plt.bar(x, values)
plt.xticks(x, years)

plt.show()


연도별로 변화하는 값을 나타낸 수직 막대그래프 예제입니다.
NumPy의 np.arange() 함수에 나타낼 값의 갯수를 입력합니다.
years는 X축에 표시될 연도이고, values는 막대 그래프의 y 값 입니다.
plt.bar() 함수에 x 값 [100, 400, 700, 1000]와 y 값 ['2019', '2020', '2021', '2022']를 입력해주고 실행시키면
아래와 같은 결과가 나옵니다.




2. 색상 지정하기

a. 전체 색상 지정

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(4)
years = ['2019', '2020', '2021', '2022']
values = [100, 400, 700, 1000]

plt.bar(x, values, color='green')
plt.xticks(x, years)

plt.show()


plt.bar() 함수에 color 매개변수를 사용해서 막대의 색상을 지정한 예제입니다.
결과는 아래와 같습니다.



b. 각 막대 색상 지정

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(4)
years = ['2019', '2020', '2021', '2022']
values = [100, 400, 700, 1000]

colors = ['gold', 'b', '#FF0000', 'green']

plt.bar(x, values, color=colors)
plt.xticks(x, years)


plt.show()


plt.bar() 함수의 color 매개변수에 생상의 이름을 리스트로 입력하여 막대 색상을 각각 다르게 지정한 예제입니다.
결과는 아래와 같습니다.



3. 막대 폭 지정

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(4)
years = ['2019', '2020', '2021', '2022']
values = [100, 400, 700, 1000]
colors = ['gold', 'b', '#FF0000', 'green']

plt.bar(x, values, color=colors, width=0.4)
# plt.bar(x, values, width=0.6)
# plt.bar(x, values, width=0.8)
# plt.bar(x, values, width=1.0)
plt.xticks(x, years)

plt.show()


plt.bar() 함수의 width 매개변수로 막대의 폭을 지정한 예제입니다.
디폴트는 0.8이고, 예제에서는 0.4로 지정했습니다.
결과는 아래와 같습니다.


4. 수평 막대 그래프

import matplotlib.pyplot as plt
import numpy as np

y = np.arange(4)
years = ['2019', '2020', '2021', '2022']
values = [100, 400, 700, 1000]
colors = ['gold', 'b', '#FF0000', 'green']

plt.barh(y, values, color=colors, height=0.4)
plt.yticks(y, years)

plt.show()


plt.barh() 함수를 사용하여 수평 막대 그래프를 그린 예제입니다.
이때, plt.yticks() 함수를 사용해야하며, 막대 폭을 지정하려면 height 매개변수로 지정해야합니다.
결과는 아래와 같습니다.