본문 바로가기

개념 「概念」/Python

[Py] 데이터 시각화 _그래프

데이터 시각화란?

 → 데이터를 쉽게 이해할 수 있도록 시각적으로 표현하고 전달하는 작업.

     ※ 데이터를 시각화할 수 있는 대표적인 형식은 그래프와 이미지가 있습니다.


이 글은 파이썬을 활용한 그래프 시각화를 중심으로 다뤄보려고 합니다.

 

파이썬에서 그래프를 그릴 때 주로 사용하는 라이브러리는 맷플롯립(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