본문 바로가기

언어/Python

[Python] Python(파이썬) 시각화를 위한 환경 구축

시각화 라이브러리

라이브러리 설명
Matplotlib, Seaborn 정적 이미지를 생성
이미지 차트를 만들어준다.
Bokeh, d3py Interactive 시각화 라이브러리
html 형식으로 생성해주기 때문에 클릭 및 이동이 가능하다.

Pandas를 통한 데이터 분석 후 시각화를 통해 데이터에 대한 이해도를 높일 수 있다.

개발환경 구축

필요한 프로그램 설명
Excel Windows용 Excel 2007 이상 또는 Mac용 Excel 2016 이상
Python(3버전 이상) Anaconda Python 배포판(https://www.anaconda.com/download/)
Jupyter Notebook(4버전 이상)

필요한 라이브러리

Anaconda를 통해 설치되는 라이브러리 설명
pandas 데이터 전처리 및 분석 라이브러리
matplotlib, seaborn 시각화 라이브러리
xlwings 엑셀 UI 자동화 라이브러리
scikit-learn 머신러닝 라이브러리
requests HTTP 요청 라이브러리(크롤링에 사용)
beautifulsoup4 HTML parser 라이브러리(크롤링에 사용)
tqdm 진행상태 표시 라이브러리

Anaconda를 통해 파이썬을 설치하지 않았다면 pip 명령어를 통해 위의 라이브러리들을 설치해야 한다. 그리고 위의 라이브러리 외에 추가로 'missingno' 라이브러리를 설치해야 한다. 이 라이브러리는 결측치 시각화 라이브러리이다.

Conda Environment를 사용할 경우

* shell> conda create -n 이름 "패키지명(anaconda)" // anaconda만 사용해도 필요한 거의 모든 라이브러리를 사용할 수 있다.

* shell > activate 이름

* jupyter notebook

파이썬에 익숙하지 않다면 Conda Environment는 추천하지 않는다.

초기화 설정 코드

# 기본 초기화 코드 설정

# import 설정
%matplotlib inline
from matplotlib import pyplot as plt
import pandas as pd
import seaborn as sns

# matplotlib에 필요한 파라미터 설정 코드
plt.rcParams['axes.unicode_minus'] = False # 시각화 이미지의 음수 표현을 위한 설정
plt.rcParams['font.family'] = 'Malgun Gothic' # 시각화 이미지의 기본 폰트를 맑은 고딕으로 설정

from tqdm import tqdm_notebook
from libs import stock_daum, stock_naver

 

위의 초기화 설정 코드에서 만약 폰트를 지정하지 않으면 영문으로 기본 폰트가 설정되어 차트에서 한글 표현이 되지 않고 네모 박스로 표시가 된다. 마찬가지로 음수 표현을 위한 설정을 해주지 않으면 마이너스(-)가 네모 박스로 표시된다.

추가로 실제 파이썬 코드가 아닌 쥬피터 노트북에서만 지원되는 magic command가 있다. 현재 경로를 확인하기 위해서는 %pwd, 하위 디렉터리 및 파일을 확인하기 위해서는 %ls를 사용하면 된다.

 

x = [1, 2, 3, 4]
y = [4, 6, 8, 12]

plt.plot(x, y) # x와 y를 인자로 전달하여 그리기
plt.title("Plot test") # 그래프의 제목
plt.xlabel("x-axis") # x축 이름
plt.ylabel("y-axis") # y축 이름
# plt.show() # 차트를 보여주는 함수

위의 초기화 설정이 제대로 되었다면 위의 예제 코드를 사용해본다. 위의 예제는 x와 y를 연결하여 그래프를 그리는 코드이다. 이때 전달되는 x와 y는 리스트, 튜플, Numpy에 있는 ndarry 등 유사한 자료구조는 모두 가능하다. title, xlabel, ylabel 함수를 사용하여 그래프의 제목과 각 축에 대해 이름을 설정할 수 있다.

show 함수는 차트를 보여주는 함수이다. 하지만 예제 코드처럼 show 함수를 사용하지 않아도 그래프가 잘 나타는데 그 이유는 앞서 '%matplotlib inline'를 설정해주었기 때문이다.