AR삽질러

Python - 시각화(Visualization) 본문

Python

Python - 시각화(Visualization)

아랑팡팡 2023. 12. 5. 01:46
728x90

 

시각화(Visualization)

 

 시각화(Visualization)는 수집된 데이터를 쉽게 이해할 수 있도록 시각적으로 표현하고 전달되는 과정으로 효율적으로 명확하게 정보를 전달하기 위한 목적을 갖는다. 데이터를 분석하고 해당 데이터를 기반으로 의사 결정을 내리기 쉽게 하기 위해서 이다.

 데이터를 분석하는 사람들은 패턴과 관계를 빠르고 쉽게 보고 이해하고 원시 숫자의 표 또는 스프레드시트만으로는 눈에 띄지 않을 수 있는 새로운 추세를 파악하고자 한다. 데이터를 다양한 그래프(원형 차트, 막대 그래프, 타임라인, 지도, 히스토그램 등)으로 표현한다.

 시각화 라이브러리로 많이 사용하는 Matplotlib는 판다스의 Dataframe을 시각화할 때에도 내부적으로 Matplotlib를 사용한다. 설치는 "pip install matplotlib" , 파이참에서는 [File] -> [settings..] -> [Project:XX] -> [Python Intepreter]를 통해 라이브러리를 설치한다.

 

1. 무작위로 수를 추출하여 차트로 그린 예제

import random
import matplotlib.pyplot as plt

y = []
for i in range(10):
    y.append(random.randrange(1, 10))
x = range(len(y))
plt.plot(x, y)
plt.title('random test')
plt.xlabel('number')
plt.ylabel('value')
plt.show()

 

1) 모듈 import

 - import random : random 모듈을 임포트해 무작위 숫자를 생성한다.

 - import matplotlib.pyplot as plt : matplotlib의 pyplot 모듈을 plt라는 변수명으로 임포트한다. matplotlib.pyplot는 그래프 및 시각화를 위한 주요 함수를 가지고 있다.

2) 데이터 생성

 - y = [] : 그래프 y축 데이터를 저장할 빈리스트를 생성한다.

 - for i in range(10) : 0 부터 9까지(총 10번) 반복하는 반복문을 시작한다.

 - y.append(random.randrange(i, 10)) : 각 반복에서 1부터 9까지의 랜덤한 정수를 생성하여 y 리스트에 추가한다.

3) x축 데이터 생성

 - x = range(len(y)) : y리스트의 길이만큼의 범위를 생성해 x 변수에 할당한다.

4) 그래프 생성

 - plt.plot(x, y) : x와 y 데이터를 이용해 선형 그래프를 생성한다.

 - plt.title('random test') : 그래프의 제목을 random test로 출력한다.

 - plt.xlabel('number') : x축 레이블을 number로 출력한다.

 - plt.ylabel('value') : y축 레이블을 value로 출력한다.

5) 그래프 표시

 - plt.show() : 설정된 그래프를 화면에 표시한다. 

 

2. Folium 지도 데이터 시각화

 Folum은 지도 데이터(Open Street Map)에 leaflet.js 를 이용해 위치 정보를 시각화하는 라이브러리로 자바스크립트 기반이기 때문에 인터렉티브하게 그래프를 그릴 수 있다. "pip insall folium" 명령을 통해서 설치하고 파이참의 경우 [Python Interpreter]를 통해서 검색이 되지 않으며 [Python Packages]에서 검색해 [install with pip] 버튼을 눌러 설치한다.

 

구글맵에서 "검색할주소" 를 검색하면 아래 화면과 같이 나오고 주소 입력창에 "검색할 주소"의 위도, 경도 정보가 표시된다.

 

파이썬 코드를 실행하면 저장된 폴더에 파일이 생성되고 더블클릭시 브라우저에 나타난다.

import folium
position = [37.570379, 126.901590]
locationMap = folium.Map(location=position, zoom_start=16)
locationMap.save('C:/myPythonProject/Temp/my_map.html')

 

1) 모듈 import

 - import folium : 지도를 생성하고 조작하기 위한 Python라이브러리를 임포트한다.

2. 위치 데이터 설정

 - position = [위도 경도] : 위도와 경도를 나타내는 리스트로 지도 맵에서 위도와 경도를 검색에 넣는다.

3. 지도 생성

 - locationMap = folium.Map(location=position, zoom_start=16) : folium.Map함수는 location인자로 전달된 위치에 대한 지도 객체를 생성한다. zoom_start = 16 는 지도의 초기확대 레벨을 설정한다. 확대 레벨은 높은 수록 확대된다.

4) 지도 저장

 - locationMap.save : save메서드를 활용해 HTML파일로 저장한다.

 

3. 워드 클라우드 시각화

 워드 클라우드란 문서의 키워드, 개념 등을 직관적으로 파악할 수 있도록 핵심 단어를 시각적으로 돋보이게 하는 기법으로 자료의 빈도를 시각적으로 나타내는 시각화 방법 중 하나이다. 워드클라우드 패키지는 "pip install wordcloud" 명령으로 설치한다. 파이참에서는 Python Packages에서 검색하여 설치한다.

 

 영문 텍스트를 시각화하기 위해서는 nltk패키지를 설치한다. 아나콘다는 이미 설치되어 있고 파이참의 경우에는 사용 가능한 패키지에서 검색하여 설치한다. nltk설치 후에는 아나콘다와 파이참 모두에서 한번은 다운해야한다.

 

 

 

 

 

 

728x90
반응형
LIST