[zerobase_데이터 취업스쿨_스터디노트] 13.데이터시각화_matplotlib_실습(기초)

김소희·2023년 11월 28일
0

study_note

목록 보기
13/50
matplotlib 라이브러리는 데이터 시각화를 하기 위해서는 필수적으로 잘 다뤄야 한다..

처음 다루는 사람들에게는 아무리 봐도 그게 그 말 같고,
정말 헷갈리고 쉽지가 않다.
(나는 그랬다..)

이번 데이터취업스쿨에서 matplotlib 을 처음 다루는게 아닌데도 불구하고
기초부터 다시 배워야 할 만큼 쓰지 않으니까 금방 까먹는다.
그래서 아예 처음부터 천천히 기초를 탄탄히 쌓고 가봐야겠다.

먼저 matplotlib 라이브러리를 install 하는 것 부터 정리해보겠다.

matplotlib 기초


1. 라이브러리 다운로드

pip install matplotlib

다운로드는 pip install 명령어로 똑같이 받기만 하면 된다.

2. 라이브러리 불러오기

import matplotlib.pyplot as plt 
from matplotlib import rc #rc라는 패키지만 불러오는 과정 

3. 한글폰트가 깨지지 않게 하기위해 설정을 해주어야 한다.

rc('font', family='Malgun Gothic') #mac버전은 따로 있다.

4. 실행시 바로 그래프가 나타나게 하는 설정

get_ipython().run_line_magic("matplotlib", "inline")

5. 빈 도화지 설정

plt.figure(figsize=(10,6))

6. 데이터의 내용을 담는다.

plt.plot([0,1,2,3,4,5,6,7,8,9],[1,1,2,3,4,2,3,5,-1,3])

7. 화면에 보여주기

plt.show()

8. 결과

이렇게 시각화하는 과정이다.
위에는 간단한 예시로 작성된 코드이다.
위의 코드들을 한 번에 작성하면

vscode 에서 연 .ipynb 파일이다. 주피터 노트북으로도 할 수 있지만 나는 github에 바로 푸시 하기위해서 vscode로 작업하였다.

집 노트북과 회사 컴퓨터로 공부를 하고 있기도 하고
혹시라도 다른 컴퓨터 환경에서 써야 할 경우를 대비해서 github 으로 관리하고있다.
그러면 파일을 불러오는 과정에서도 파일의 위치를 다시 설정하고 할 필요가 없기 때문에
매우 간편하게 어떤 환경에서도 실행이 용이하다.

github 을 다루는 건 아직 너무 어렵기 때문에 뒤에 커리큘럼에서 더 자세히 배워야겠지만
구글링을 통해 찾아보면서 하면 기본적인 리포지토리 생성부터 push , pull 과 같은 것 들은
쉽게 할 수 있기 때문에 코드관리 하는데 매우매우 추천한다.

본론으로 돌아와서..

몇 가지 예제를 통해 matplotlib 연습을 좀 더 해보자!


예제1. 그래프 기초

import numpy as np

t = np.arange(0,12,0.01)
y = np.sin(t)

먼저 numpy 라이브러리를 불러온 다음
t, y 변수를 알맞게 세팅해준다.

plt.figure(figsize=(10,6))
plt.plot(t, np.sin(t))
plt.plot(t, np.cos(t))
plt.show()

위에서 했던 동일한 코드를 써주면

이런 그래프를 만들어 낼 수 있다.

그렇지만 x,y 축을 무엇을 뜻하고 파란줄,주황줄을 무엇을 뜻하는지
가독성이 좋게끔 기능을 추가해 봐야 할 것 같다.

또한, 격자 무늬가 나오도록 기능을 추가해 보겠다.
정리하자면,

    1. 격자무늬 추가
    1. 그래프 제목 추가
    1. x축, y축 제목 추가
    1. 주황,파란색 선 데이터 의미 구분
plt.figure(figsize=(10,6))
plt.plot(t, np.sin(t), label="sin")
plt.plot(t, np.cos(t), label='cos')
plt.grid(True)
plt.legend(loc='upper right') #범례
plt.title('Example of sinewave')
plt.xlabel('time')
plt.ylabel('Amlitude') #진폭
plt.show()

위에 코드와는 조금 달리 추가된 grid, legend, title, xlabel, ylabel 이 있다.

legend 안에 labels=['sin','con'] 으로 넣어주어도 되고,
plot() 안에 label 명을 아예 수동으로 넣어줄 수도 있다.

결과)

전에 비해 훨씬 더 가독성이 좋아지고 무엇을 말하고 싶은 그래프인지 한 눈에 보인다.
이렇게 데이터시각화는 보는 이에게 보다 쉽고 빠르게 데이터를 보여주고 설득력도 높여준다.

마지막으로는 이것을 함수로 만들어 좀 더 쉽고 간결하게 사용하고, 수정에도 용이하게 만들어보겠다.

함수사용

함수로 사용 

def drawGraph():
    plt.figure(figsize=(10,6))
    plt.plot(t, np.sin(t), label="sin")
    plt.plot(t, np.cos(t), label='cos')
    plt.grid(True)
    plt.legend(loc='upper right') #범례 또는 2라고만 쓸 수도 있음.
    plt.title('Example of sinewave')
    plt.xlabel('time')
    plt.ylabel('Amlitude') #진폭
    plt.show()

매우 간단하다. 함수를 정의하고 그 안에만 넣어주면 끝!

drawGraph()

이렇게 함수를 호출하기만 하면

아까와 똑같은 그래프를 볼 수가 있다.
단 한 줄로 10줄을 대신 할 수 있다니 굉장히 효율적인 방법이니, 이것도 연습을 많이 해봐야겠다.

다음 시간에는 matplotlib 기초실습 2탄으로 돌아오겠다!

profile
AI 개발자로 가는 길 두렵지 않아요

0개의 댓글