머신러닝&딥러닝

머신러닝 & 딥러닝 기초 13편 | Matplotlib, 선 그래프, 막대 그래프, 히스토그램

SecLogs YJ 2026. 3. 14. 22:09
목차

1. Matplotlib이란
1-1 Matplotlib 설치
1-2 선형 그래프 예제
1-3 막대 그래프 예제
1-4 히스토그램 예제
2. 그래프 꾸미기

1. Matplotlib 이란

Matplotlib는 데이터 시각화를 위한 Python 라이브러리이다.

선 그래프, 막대 그래프, 히스토그램, 산점도, 원형 차트 등을 만들 수 있다.

 

NumPy나 pandas에서 생성한 데이터를 그래프로 시각화할 수 있다.

 

1-1 Matplotlib 설치

pip install matplotlib

 

1-2 선형 그래프 예제

선형 그래프(Line plot)는 데이터의 변화 추이를 선으로 연결하여 표현하는 그래프이다.

 

주로 시간에 따른 데이터 변화나 추세와 같은 연속형 데이터를 확인할 때 사용된다.

예를 들어 주가 변화, 온도 변화, 판매량 변화 등을 표현할 때 활용된다.

 

예제 1) 라이브러리 import

matplotlib의 pyplot 모듈을 불러온다. 

관례적으로 plt라는 별칭으로 가져온다.

import matplotlib.pyplot as plt

 

 

예제 2) 데이터 생성

x=[1, 2, 3, 4, 5]
y=[10, 15, 13, 20, 18]

print("x 데이터:", x)
print("y 데이터:", y)

 

x :그래프의 가로축에 사용할 데이터 (ex. 시간)

y : 그래프의 세로축에 사용할 데이터 (ex. 판매량)

 

예제 2) 출력 결과

x 데이터: [1, 2, 3, 4, 5]
y 데이터: [10, 15, 13, 20, 18]

 

 

예제 3) 그래프 생성 옵션 - plt.plot

선형 그래프를 생성하기 위해서 plot() 함수를 사용한다.

  • 첫 번째 매개변수 : x축 상의 점들을 담은 배열
  • 두 번 매개변수 : y축 상의 점들을 담고 있는 배열
plt.plot(
    x,
    y
)

 

예제 3) 출력 결과

예제 3 출력 결과(plot)

 

 

예제 4) 그래프 생성 옵션 - marker

marker 인자를 사용하여, 지정된 마커로 각 항목을 강조할 수 있다.

plt.plot(
    x,
    y,
    marker='o'
)

 

예제 4) 출력 결과

예제 4 출력 결과(marker)

 

 

예제 5) 그래프 생성 옵션 - color

color 인자를 사용하여 그래프의 색상을 지정할 수 있다.

주요 컬러별 별칭은 다음과 같다. 이외에도 'red', 'blue', 'green'과 같은 색상 이름도 사용할 수 있다.

alias  color
'b' 파랑
'r' 빨강
'g' 초록
'm' 마젠타
'y' 노란색
'k' 검은색
'w' 하얀색

 

plt.plot(
    x,
    y,
    marker='o',
    color='r'
)

 

 

예제 5) 출력 결과

예제 5 출력 결과(color)

 

 

예제 6) 그래프 생성 옵션 - linestyle

linestyle 인자를 사용하여, 그래프의 선모양을 변경할 수 있다.

 

주요 그래프 선 모양은 다음과 같다.

구분 설명
실선
점선
-. 대시-점선
점선
None 선 없음

 

plt.plot(
    x,
    y,
    marker='o',
    color='r',
    linestyle=':'
)

 

예제 6) 출력 결과

 

예제 6 출력 결과(linestyle)

 

 

예제 7) 그래프 생성 옵션 - plt.grid

grid() 함수는 그래프에 격자선을 추가하여 데이터 값을 더 쉽게 읽을 수 있도록 도와준다.

plt.plot(
    x,
    y,
    marker='o',
    color='r',
    linestyle=':'
)
plt.grid()

 

예제 7) 출력 결과

예제 7 출력 결과(grid)

 

 

예제 8) 그래프 출력

show() 함수는 생성된 그래프를 화면에 출력하는 함수이다.

plt.plot(
    x,
    y,
    marker='o',
    color='r',
    linestyle=':'
)
plt.grid()
plt.show()

 

1-2 막대 그래프(Bar Chart)

막대 그래프는 직사각형 막대를 사용하여 여러 범주의 값을 비교하는 그래프이다.

일반적으로 x축에는 비교 대상이 되는 범주가 표시되고, y축에는 각 범주에 해당하는 값이 표시된다.

 

예제 1) 라이브러리 import

matplotlib의 pyplot 모듈을 불러온다. 

관례적으로 plt라는 별칭으로 가져온다.

import matplotlib.pyplot as plt

 

 

예제 2) 데이터 생성

categories = ['Apple', 'Banana', 'Orange', 'Grape']
values = [10, 15, 7, 12]

print("카테고리:", categories)
print("값:", values)

 

categories : 막대 그래프의 x축에 표시될 범주 데이터 (ex. 과일)

values : 각 범주에 해당하는 값(막대의 높이) (ex. 과일 판매량)

 

예제 2) 출력 결과

카테고리: ['Apple', 'Banana', 'Orange', 'Grape']
값: [10, 15, 7, 12]

 

 

 

예제 3) 그래프 생성 옵션 - plt.bar

막대 그래프를 생성하기 위해서 bar() 함수를 사용한다.

  • 첫 번째 매개변수 : x 축에 표시될 범주
  • 두 번째 매개변수 : 각 범주에 해당하는 값

예제 3) 출력 결과

예제 3 출력 결과(bar)

 

 

예제 4) 그래프 생성 옵션 - color

color 인자를 사용하여 막대 그래프의 색상을 지정할 수 있다.

plt.bar(
    categories,
    values,
    color='pink'
)

 

예제 4) 출력 결과

예제 4 출력 결과(color)

 

 

예제 5) 그래프 생성 옵션 - edgecolor

edgecolor 인자를 사용하여 막대 그래프의 테두리 색상을 지정할 수 있다.

plt.bar(
    categories,
    values,
    color='pink',
    edgecolor='blue'
)

 

예제 5) 출력 결과

예제 5 출력 결과(edgecolor)

 

 

예제 6) 가로 막대 그래프 - plt.barh

barh() 함수는 가로 막대 그래프를 생성하는 함수이다.

데이터의 범주 이름이 길거나, 범주가 많을 대 가로 막대 그래프가 더 보기 편하다.

plt.barh(
    categories,
    values,
    color='pink',
    edgecolor='blue'
)

plt.show()

 

예제 6) 출력 결과

예제 6 출력 결과(barh)

 

예제 7) 그래프 출력

show() 함수는 생성된 그래프를 화면에 출력하는 함수이다.

plt.bar(
    categories,
    values,
    color='pink',
    edgecolor='blue'
)

plt.show()

 

 

1-3 히스토그램(Histogram)

막대 그래프가 범주형 데이터를 비교하는 그래프라면, 히스토그램은 연속형 데이터의 분포를 확인하는 그래프이다.

히스토그램은 데이터를 일정한 구간으로 나누어, 각 구간에 데이터가 얼마나 많이 포함되어 있는지를 막대 형태로 표현한다.

 

이를 통해 데이터가 어떤 구간에 많이 분포하는지, 또는 데이터가 어떻게 퍼져 있는지를 확인할 수 있다.

 

예제 1) 라이브러리 import

metplotlib의 pyplot 모듈을 불러온다. 

관례적으로 plt라는 별칭으로 가져온다.

import matplotlib.pyplot as plt

 

 

예제 2) 데이터 생성

히스토그램을 그리기 위해 연속형 데이터를 생성한다.

scores=[55, 60, 62, 65, 67, 70, 72, 75, 78, 80, 82, 85, 88, 90, 92]

print("점수 데이터:", scores)

 

scores : 학생들의 시험 점수 데이터

즉, 위 데이터는 학생들의 시험 점수 분포라고 할 수 있다.

 

예제 2) 출력 결과

점수 데이터: [55, 60, 62, 65, 67, 70, 72, 75, 78, 80, 82, 85, 88, 90, 92]

 

 

예제 3) 그래프 생성

히스토그램을 생성하기 위해 hist() 함수를 사용한다.

plt.hist(
    scores
)

 

예제 3) 출력 결과

히스토그램이 생성되며, 데이터가 여러 구간으로 나뉘어 각 구간의 데이터 개수가 막대로 표시된다.

예제 3 출력 결과(hist)

 

 

예제 4) 그래프 생성 옵션 - bins

bins 인자를 사용하여 데이터를 나누는 구간의 개수를 지정할 수 있다.

plt.hist(
    scores,
    bins=5
)

 

예제 4) 출력 결과

데이터가 5개의 구간으로 나뉘어 히스토그램이 생성된다.

예제 4 출력 결과(bins)

 

 

예제 5) 그래프 생성 옵션 - color

color 인자를 사용하여 히스토그램의 색상을 지정할 수 있다.

plt.hist(
    scores,
    bins=5,
    color='yellow'
)

 

예제 5) 출력 결과

히스토그램의 막대 색상이 노란색으로 표시된다.

예제 5 출력 결과(color)

 

예제 6) 그래프 생성 옵션 - edgecolor

edgecolor 인자를 사용하여 막대의 테두리 색상을 지정할 수 있다.

plt.hist(
    scores,
    bins=5,
    color='yellow',
    edgecolor='black'

)

 

예제 6) 출력 결과

막대의 테두리가 검은색으로 표시된 히스토그램이 생성된다.

예제 6 출력 결과(edgecolor)

 

예제 7) 그래프 생성 옵션 - alpha

alpha 인자를 사용하면 그래프의 투명도를 조절할 수 있다.

값의 범위는 0~1 사이이다. (0: 완전 투명, 1:불투명)

plt.hist(
    scores,
    bins=5,
    color='yellow',
    edgecolor='black',
    alpha=0.3
)

 

예제 7) 출력 결과

히스토그램의 막대가 투명도가 적용된 상태로 표시된다.

예제 7 출력 결과(alpha)

 

 

예제 8) 그래프 출력

show() 함수는 생성된 그래프를 화면에 출력하는 함수이다.

plt.hist(
    scores,
    bins=5,
    color='yellow',
    edgecolor='black',
    alpha=0.3
)

plt.show()

 

 

2. 그래프 꾸미기 옵션

Matplotlib에서는 그래프를 더 보기 쉽게 만들기 위해 제목, 축, 이름, 범례 등을 추가할 수 있다.

 

이러한 옵션을 활용하면 그래프의 의미를 보다 명확하게 전달할 수 있다.

 

예제 1) plt.title

title() 함수는 그래프의 제목을 설정하는 함수이다.

plt.bar(
    categories,
    values,
    color = 'pink',
    edgecolor ='blue'
)
plt.title("Fruit Sales")
plt.show()

 

예제 1) 출력 결과

 

예제 1 출력 결과(title)

 

예제 2) plt.xlabel, plt.ylabel

xlabel() 함수는 x축의 이름을 설정하는 함수이다.

ylabel() 함수는 y축의 이름을 설정하는 함수이다.

plt.bar(
    categories,
    values,
    color = 'pink',
    edgecolor ='blue'
)
plt.title("Fruit Sales")
plt.xlabel("Fruit")
plt.ylabel("Sales")
plt.show()

 

예제 2) 출력 결과

예제 2 출력 결과(xlabe, ylabel)

 

예제 3) plt.legend

legend() 함수는 그래프에 범례(legend)를 표시하는 함수이다.

여러 개의 그래프를 함께 표현할 때, 각 그래프가 무엇을 의미하는지 구분하기 위해 사용한다.

 

예를 들어, 두 개의 선 그래프를 함께 표현할 경우 다음과 같이 사용할 수 있다.

x = [1,2,3,4]
y1 = [10,15,20,25]
y2 = [12,18,22,30]

plt.plot(x, y1, label="Product A")
plt.plot(x, y2, label="Product B")

plt.legend()

plt.show()

 

이 경우 그래프에는 Product A, Product B를 구분하는 범례가 표시된다.

 

예제 3) 출력 결과

예제 3 출력 결과(legend)


👉 머신러닝 & 딥러닝 기초 14편 | Seaborn, 히트맵, 박스플롯, 바이올린플롯