데이터 시각화란?
→ 데이터를 쉽게 이해할 수 있도록 시각적으로 표현하고 전달하는 작업.
※ 데이터를 시각화할 수 있는 대표적인 형식은 그래프와 이미지가 있습니다.
이 글은 파이썬을 활용한 그래프 시각화를 중심으로 다뤄보려고 합니다.
파이썬에서 그래프를 그릴 때 주로 사용하는 라이브러리는 맷플롯립(Matplotlib)입니다.
구글 코랩(Colab)에서는 맷플롯립이 기본으로 설치되어 있어 별도 설치 없이 import 하면 됩니다.
그러나, 일부 로컬 PC에 설치되지 않은 경우는 설치 후 import를 하면 됩니다.
맷플롯립 홈페이지( https://matplotlib.org/)
선그래프 그리기
plot() 함수
→X축,Y축 데이터를 받고 선을 연결하여 그래프를 만드는 함수이다.
import matplotlib.pyplot as plt # as를 이용해 matplotlib.pyplot 모듈 이름을 plt로 수정
plt.plot(x, y, [option]) # x축의 값 x, y축의 값 y를 기본 선 그래프로 시각화
<Colab에서 실행한 우측코드 결괏값>

import matplotlib.pyplot as plt
up = [1,2,3,4,5]
upup = [1,2,3,4,5]
plt.plot(up,upup,'red')#option에 red(붉은선)
plt.show() #그래프 출력
선그래프를 꾸미는 다양한 방법들
import matplotlib.pyplot as plt
up = [1, 2, 3, 4, 5]
upup = [1, 2, 3, 4, 5]
plt.figure(figsize=(5, 3)) # 그래프 크기 설정
plt.title("Matplotlib") # 제목 설정
plt.xlabel('up') # X축 제목
plt.ylabel('upup', rotation='horizontal') # Y축 제목 rotation='horizontal'글자를 가로로 변경
plt.xlim(1, 3) # X축 범위를 1~3으로 제한
plt.ylim(1, 4) # Y축 범위를 1~4로 제한
plt.plot(up, upup, 'red')
plt.show()

<선 색상을 설정하는 단일 문자>
| 문자 | 색상 | 문자 | 색상 |
| 'b' | 파랑 (blue) | 'm' | 자홍 (magenta) |
| 'g' | 초록 (green) | 'y' | 노랑 (yellow) |
| 'r' | 빨강 (red) | 'k' | 검정 (black) |
| 'c' | 청록 (cyan) | 'w' | 하양 (white) |
<데이터 마커 설정 값> <선 모양 설정 값>
| marker 값 | 설명 | marker 값 | 설명 | linestyle 값 | 설명 | linestyle값 | 설명 |
| '.' | 점 마커 | 'x' | x마커 | '-' | 실선 | '-.' | 일점쇄선 |
| 'o' | 원 마커 | '*' | *마커 | '--' | 파선 | ' : ' | 점선 |
| 'v' | 아래방향 삼각형 마커 | '+' | +마커 | ||||
| '^' | 위방향 삼각형 마커 | 'h' | 육각형 마커 | ||||
plt.plot(x, y, [option])중 option에 (선 색상을 설정 하는 단일 문자, 데이터 마커 설정 값, 선 모양 설정 값 등) 사용할 수 있습니다.
※ [option]은 여러 개 붙여서 사용가능하여, 순서는 상관없습니다.
plt.legend()
→범례를 추가하는 작업입니다.
※색갈과 범례를 이용해 어떤 그래프 어떤 데이터인지 쉽게 알 수 있습니다.
import matplotlib.pyplot as plt
a = [1] * 10
b = [2] * 10
x = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
plt.figure(figsize=(5, 3))
plt.plot(x, a, 'red', label='a', marker='^', linestyle=':')
plt.plot(x, b, 'blue', label='b', marker='x', linestyle='--')
plt.xlim(0, 10)
plt.ylim(0, 3)
plt.legend() # 범례 추사
plt.show()

막대그래프 그리기
막대 그래프는 항목별 값을 비교할 때 주로 사용됩니다.
bar함수를 통하여 막대 그래프를 작성합니다.
bar() 함수
→X축, Y축 데이터를 받고 값의 크기에 비례하는 막대 크래프를 만드는 함수이다.
import matplotlib.pyplot as plt
plt.bar(x, y, [option]) # x축의 값 x, y축의 값 y를 기본 막대 그래프로 시각화
딕셔너리를 막대그래프로 그리는 방법
plt.bar(name.keys(), name.values())
# 딕셔너리의 키(Key)를 x축, 값(Value)을 y축으로 하여 막대 그래프로 시각화

import matplotlib.pyplot as plt
animals = {'neko': 300, 'inu': 200, \
'usagi': 100, 'sultuponn': 50}
# \ 은 줄 바꿈 하는 걸 이해 하기 쉽게 도움
plt.figure(figsize=(5, 3))
plt.bar(animals.keys(), animals.values())
plt.show()
★누적 막대그래프는 Numpy배열을 이용하여 작성한다.
산점도 그리기
산점도는 두 변수의 관계를 시각적으로 나타내기 위하여 점을 찍어 만드는 그래프입니다.
scatter 함수를 이용해 작성합니다.
scatter() 함수
→X축, Y축 데이터를 받고 좌표평면에 점으로 나타내는 함수
import matplotlib.pyplot as plt
plt.scatter(x, y, [option]) # x축, y축에 점을 찍는다
<Colab에서 실행한 산점도 결괏값>

import matplotlib.pyplot as plt
num = [1,2,3,4,5,6,7,8,9,10]
nub = [1,2,1,2,1,5,6,7,8,9]
plt.figure(figsize=(5,3))
plt.scatter(num,nub,color='red',marker='x')
plt.show()
산점도의 특징
→ 산점도에 사용하는 리스트는 리스트 내포를 이용하여 깔끔하게 제작할 수 있다.
import matplotlib.pyplot as plt
num = [i for i in range(1, 11)] # num = [1,2,3,4,5,6,7,8,9,10] 와 같다
nub = [1, 2, 1, 2, 1, 5, 6, 7, 8, 9]
plt.figure(figsize=(5, 3))
plt.scatter(num, nub, color='red', marker='x')
plt.show()
점에 주석을 추가하는 방법
annotate() 함수를 사용하여 주석을 추가한다.
import matplotlib.pyplot as plt
plt.annotate(주석,주석 대상 위치, xytext = 주석 위치, textcoords = 단위)
#xytext는 (점)기준 좌표에서 떨어진 정도를 의미한다.
| 주석 위치의 단위 | |
| offset points | 포인트 |
| offset pixels | 픽셀 |

import matplotlib.pyplot as plt
num = [i for i in range(1, 11)]
nub = [1, 2, 1, 2, 1, 5, 6, 7, 8, 9]
plt.figure(figsize=(5, 3))
plt.annotate('10',(10,9),xytext=(-2,-14)
,textcoords='offset points')
plt.scatter(num, nub, color='red',marker='x')
plt.show()
히스토그램 그리기
hist() 함수를 이용하여 작성할 수 있다.
import matplotlib.pyplot as plt
plt.hist(x,[option]) # x 데이터의 빈도 분포를 히스토그램으로 그린다
plt.hist(x,bins구간 수, alpha=투명도)
# 0<alpha<1

import matplotlib.pyplot as plt
num = [6,8,2, 4, 9, 3, 5, 6, 1, 9
, 4, 2, 9, 4, 6, 1, 9, 2, 3]
plt.figure(figsize=(5, 3))
plt.hist(num,bins=9,alpha=0.2)
plt.show()
'개념 「概念」 > Python' 카테고리의 다른 글
| [Py] 넘파이(Numpy) 배열의 개념 (0) | 2026.06.02 |
|---|---|
| [Py] 딕셔너리 & 집합 & 튜플구조 (0) | 2026.04.11 |
| [Py] 리스트 (0) | 2026.04.09 |
| [Py] 함수와 구조적 프로그래밍 (0) | 2026.04.05 |
| [Py] 파이썬의 기초 (0) | 2026.04.04 |