본문 바로가기
Data Science/Data Visualization

[matplotlib] 시각화를 위한 기본 구조 톺아보기(이론)

by Finn# 2024. 10. 29.
728x90

 

Intro

데이터 시각화는 데이터 속에 어떤 패턴이 숨어있는지 확인해야 할 때나 누군가에게 분석한 결과를 효과적으로 설명하기 위해서 사용합니다. 특히나 데이터 분석가, 데이터 과학자, AI Engineer 등 Data Feeding부터 Score를 확인해 보는 작업까지 시각화를 활용해서 다양한 데이터를 확인해 볼 수 있습니다. 이번 게시글에서는 데이터 시각화를 다루기 전에 반드시 익혀야 할 기초적인 구조에 대해 소개하겠습니다.


데이터 시각화 모듈 : matplotlib.pyplot

matplotlib은 Python에서 데이터 시각화를 지원하는 라이브러리입니다. matplotlib은 보통 matplotlib에서도 데이터 시각화를 할 수 있습니다만 보통은 편리함때문에 matplotlib.pyplot으로 호출되어 사용됩니다. 관련 예시로 notebook같은 환경에서 사용할 경우 파일로 저장된 결과가 아니라 show()라는 메서드로 바로 결과가 확인가능하다는 편리함을 들 수 있습니다.

import matplotlib
import matplotlib.pyplot as plt

시각화를 위한 기본적인 구조

matplotlib.pyplot에서 제공하는 데이터 시각화의 기본적인 구조를 파악하기 전 우리는 데이터 시각화라는 게 화면상 어떤 식으로 만들어지고 표현되는지에 대해 실제 활용되고 있는 그래프들을 보면서 큰 관점에서 구조를 이해해야 합니다.  단순히 데이터에 맞게 시각화 자료를 만들기만 한다면 개인적인 경험 조금 보태서 실력이 많이 늘지 않는 것 같습니다.

네이버금융 - 시장지표 홈페이지 화면

 

해당 그림을 살펴보면 증가/감소에 색으로 구분하여 눈에 띄게 만들었고 그래프들도 색을 통일하여 시장지표를 나타낸다는 일체감이 느껴지는 것을 볼 수 있습니다. 이를 통해 저희는 눈에 띄는 부가적인 요소들로 그래프를 통해 전달하고자하는 바를 빠르고 정확하게 이해할 수 있도록  돕는다는 것을 알 수 있습니다. 하지만 이번 글에서 저희는 이런 부가적인 요소를 덜어내고 내가 원하는 그래프를 그리기 위해 어떤 구조와 작업을 해야 할 지에 대해 집중적으로 학습해 보겠습니다.

부가요소를 제거한 그래프들의 모습

 

Figure와 Axe라는 두가지 영역으로 전체 그래프들의 집합을 담고 있는 영역과, Axe로 개별 그래프를 나타내는 영역을 구분해 봤습니다. 당장 Figure와 Axe가 뭔지에 집중하기보다는 그래프들의 집합과 개별 그래프의 영역으로 구분된다는 점을 먼저 이해한 뒤 다시 한번 Figure, Axe로 구분되는 점을 상기시켜 본다면 보다 두 영역이 어떤 차이가 있는지 이해하기 편하실 겁니다.

 

Figure라는 공간은 여러개의 Graph 집합을 담는 공간으로 쉽게 이해가 가능한 반면, Axe에는 직접적으로 Graph가 표현되기 때문에 구조적으로 살펴볼 필요가 있습니다. 이는 아래 파트에서 Grid만 존재하는 빈 공간에서 어떻게 그래프가 그려지는지 살펴보고 어떤 구조로 쌓아가는지 확인해 보겠습니다.

 

 


Axe 공간의 구성 (그래프에 필요한 요소)

Axes는 Axe의 집합입니다. 여기서는 Axes를 당장 다루기보다는 Axe에 집중해 보겠습니다.

앞서 소개한 대로 왼쪽 Empty Space는 Grid만 존재하는 빈 Axe공간입니다. 반면 오른쪽은 앞서 네이버금융에서 살펴본 시장지표가 담겨있는 하나의 Axe 내 그래프입니다. 확실히 어떤 요소들로 차곡차곡 채워져 있는 것이 보이시나요? 여러분들이 데이터를 통해서 어떤 정보를 전달하고자 할 때, 기본적으로 어떤 정보들을 제공해야 하는지에 대한 소스를 오른쪽 그래프를 통해 알 수 있을 겁니다. 한번 여러분들이 직접 생각해 보시고 스크롤을 내려 확인해 보시기 바랍니다.

생각해 보셨을 거라 믿고.. 정리해 보겠습니다.

 먼저 가장 눈에 띄는 것은 Plot입니다. Plot은 보통 데이터가 어떤 형태로 저장되어 있는지에 따라서 달라집니다. 하지만 이번 게시글에서는 Plot이라는 요소가 필요하다! 에만 집중하겠습니다.

 두 번째 요소는 Range입니다. Plot이 어떻게 그려지냐에 직접적인 영향을 미치기도 하고 Range를 잘못 설정하면 시각적으로 데이터를 왜곡시켜 보이기도 합니다. 따라서 여러모로 축범위(Range)를 어떻게 설정하는지는 매우 중요하기 때문에 꼭 시각화에서 신경 쓰시길 바랍니다.

 세 번째 요소는 Scale입니다. Linear 한 Scale이 아닌 Log를 적용하여 그래프를 그려야 할 경우가 있습니다. 따라서 Scale도 꼭 신경 써야 할 요인 중 한 가지입니다.

 

  마지막으로 Tick과 Tick-Label입니다. 기본적으로 축값을 통해 Plot의 개별 수치가 어떤 값인지를 꼭 명시해 줘야 Plot을 통해 전달하고자 하는 바를 명확하게 전달할 수 있습니다. 상식적으로 Tick값이 명시되어있지 않다면..? 어떤 값이 무엇을 의미하는지 이해할 수 없을 것입니다.

 

  이렇게 4가지 요소들은 데이터 시각화를 위해서 꼭 필요한 값들이니 반드시 기억해두셔야 합니다.  다음으로 저 4가지 요소들을 알았다면 어떤 구조로 기억하면 좋을까요? 사실 기억하는 방법에는 정답이 없습니다. 편한 대로 기억하시면 됩니다. 아래 소개드리는 내용은 제가 그래프를 그릴 때 머릿속에서 생각하는 순서를 도식화해 놓았습니다.

 

Axe에서 데이터를 표현하기 위한 틀 설계(Plot은 마지막에 !)

 

 

 위 그림을 살펴보면 Plot이 없다는 것을 알 수 있습니다. 이처럼 구조를 정확하게 잡은 뒤, 마지막으로 Plot을 그리고 Range와 Scale을 조정해 나가면서 기본적인 데이터 시각화를 완성하시면 됩니다. 이번 칼럼을 통해서 시각화의 기본 구조를 익혀보시기 바랍니다. 다음 게시글에서는 배웠던 구조를 코드로 작성하는 시간을 가져보겠습니다.


Outro

긴 글 읽어주셔서 감사합니다 ~
영상 자료도 함께 첨부하오니 설명이 부족하신 분들은 참고해 주시면 좋을 것 같습니다.

도움 되셨다면 아래 링크에서 좋아요구독, 알람설정 부탁드립니다 ㅋㅋ !

 

인스타 주소

https://www.instagram.com/f.inn_sharp/

반응형