프로그래밍/python

데이터 시각화를 위한 파이썬 matplotlib

콘파냐 2017. 6. 1. 21:51
  • 데이터를 시각화하는 도구로는 matlab이 유명하지만 유료라는 점이.. 그리고 가격도 개인이 사용하기에는 너무 비싸다.


무료를 찾는 다면 당연히 파이썬의 matplotlib를 고려할 것이다. 파이썬은 거의 모든 분야에서 활용이 가능한 범용언어라는 이점이 있고 쉬운 문법과 정말 셀수 없이 수많은 라이브러리의 빵빵한 지원이 있다. 파이썬 문법만 익혀놓으면 다양한 분야(인공지능, 빅데이터, 웹, 수학, 과학 등..)와 데이터 분석을 점목시키기에 안성맞춤인 셈이다.


데이터 시각화를 위한 라이브러리 matplotlib를 사용하려면 아나콘다를 설치하기를 추천한다. 아나콘다는 기존의 파이썬 + matplotlib + 수학,과학을 위한 라이브러리들을 묶어 배포하는 파이썬이다. 파이썬과 matplotlib 등의 라이브러리들을 따로따로 설치하는 수고로움을 덜어준다. 자세한 내용은 다음글 참고

아나콘다(anaconda) 설치와 파이썬 버전 바꾸기


  • 데이터 시각화

plot에는 다양한 뜻이 있지만 여기에서는 그래프를 그리다 라는 뜻으로 쓰인다. 데이터 분석에서 "플로팅(plotting)한다"고 하는데 데이터를 그래프로 그리는 것을 말한다. 데이터 시각화 방법에 plotting 말고 여러가지가 일반적으로 데이터 시각화를 통틀어 플로팅(plotting)한다고 말하기도 하는 것 같다. 


  • spyder의 사용

코드를 작성하는 툴은 개인 취향이지만 spyder라는 녀석은 데이터 분석을 할 때 꽤 유용해 보인다. 이 녀석은 아나콘다를 설치하면 자동으로 사용가능하므로 굳이 안 쓸이유도 없다. 윈도우 검색에서 "spyder" 를 검색해서 거미줄 모양 아이콘(spyder)를 실행하자.


spyder는 다음과 같은 모습이다. 왼편에 파이썬 코드를 작성하고 F5키를 누르던가  아이콘을 누르면 코드의 결과가 오른쪽에 나타난다.

spyder를 사용하지 않아도 되지만 위 그림처럼 데이터 분석을 좀 더 손쉽게 하도록 다양한 기능과 정보를 추가적으로 얻을 수 있다. (spyder에 대한 자세한 내용은 따로 포스팅 예정)


  • matplotlib 사용법

프로그래머 입장에서 matplotlib의 사용법은 매우 간단하다. 간략히 세 단계로 요약되는데 라이브러리 import, 데이터 설정(x값, y값), 데이터 플로팅, 이렇게 3단계로 요약할 수 있다. 


앞서 예제는 범위(-1 < x < 2) 에서 2차 함수(x^2+x+3)를 그래프로 나타낸 예제다. 분석해 보면

import matplotlib.pyplot as plt


① matplotlib라는 모듈에 포함된 pyplot라는 모듈을 plt라는 이름으로 사용한다는 뜻이다. 


② 그 다음 11번 째 줄에서 x값의 범위를 설정하는데 -1부터 2까지 0.1간격으로 30개의 데이터를 사용한다는 뜻이다. 그리고 12번 째 줄은 함수를 정의했다.


③ plot 함수는 x값과 y(함수)값을 세팅하고 show 함수를 사용하면 앞에서 세팅한 결과를 그래프로 보여준다.


  • 여러개의 그래프 비교하기

이 것도 간단하다. 다음은 sin 과 cos 그래프를 그려보는 예제다.

몇 개의 함수를 같이 그리던 간에 렌더링을 위한 show 함수는 마지막에 한번만 호출하면 된다.


  • 좌표에 점찍기

점들을 이어서 그래프로 그려주는 plot 함수 대신 점을 그냥 찍어주는 scatter 함수를 사용했다.


numpy의 random.rand(100, 2)는 100행 2열의 행렬에 랜덤함 값을 채워 넣는다. 1열을 x의 값으로 2열을 y값으로 하여 점을 찍은 모습이다. numpy 역시 잘 알아둬야한다.


이 밖에도 matplotlib로 막대그래프 등고선 3차원 그래프 등의 다양한 방식으로 시각화를 할 수 있다. 

반응형