본문 바로가기
Python

파이썬 matplotlib 기초

by 앵남(Andy) 2021. 9. 18.

글 개요

파이썬 시각화 라이브러리인 matplotlib 기초문법을 작성합니다. 자세하게 기초를 다루지는 않습니다. 

 

 

글 본문

일단, matplotlib라이브러리에서 한글깨짐을 방지하기 위해 한글 깨짐 방지 코드를 먼저 작성하겠습니다.

import matplotlib.pyplot as plt
from matplotlib import rc 
from matplotlib import font_manager
#주피터 노트북에서 바로 시각화가 나타나게 해주는 코드입니다.
%matplotlib inline

f_path = 'C:/windows/Fonts/malgun.ttf'
font_manager.FontProperties(fname=f_path).get_name()
rc('font', family='Malgun Gothic')

위 코드가 window환경에서 matplotlib 라이브러리에서 한글깨짐을 방지해주는 코드입니다. 보통 그림을 그리기 위해서 도화지가 필요합니다. 파이썬에서도 시각화를 하려면 도화지가 필요합니다. 도화지를 원하는 크기만큼 그리는 코드가 아래있습니다.

# 빈 도화지 설정
plt.figure(figsize=(10,6))

이제 도화지를 가져왔으니 그림을 그려야합니다. 저는 matplotlib 라이브러리에 있는 plot함수를 사용해서 그림을 그려보겠습니다.

plt.figure(figsize=(10,6))
plt.plot([0,1,2,3,4,5,6,7,8,9], [1,1,2,2,3,3,4,4,5,5])
plt.show()

시각화 1

plt()함수의 첫 번째 인자는 x축 데이터이고, 두 번째 인자는 y축 데이터 입니다. 두 인자의 크기는 같아야합니다. 

또다른 예제로 삼각함수를 그려보겠습니다. 

import pandas as pd 
import numpy as np 

# np.arange(a, b, c) a부터 b까지 c간격으로 데이터 생성한다는 의미 
t = np.arange(0, 12, 0.01)


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

삼각함수 시각화

여기서 조금 아쉬운점이 있습니다. 어떤색이 sin그래프고 어떤색이 cos색인지 헷갈릴 수 도 있습니다. 수학을 잘 아시는 분은 바로 아시겠지만, 그래도 한번에 이해하기 쉽게 표시해주는 함수들이 있습니다. 

1. 그래프의 격자 무늬 추가하기

2. 전체 그래프 제목 넣기

3. x축 y축 제목넣기

4. 주항색 파랑색 그래프 제목넣어주기

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 sinewave')
#x축 이름 
plt.xlabel('time')
#y축 이름
plt.ylabel('amlitude')
plt.show()

결과

 

그래프 커스텀

그래프 선을 커스텀을 할 수 가 있습니다. 즉, 우리가 원하는 모양으로 그래프를 그릴 수 있습니다.

import matplotlib.pyplot as plt
import numpy as np 


t = np.arange(0,5,0.5)

plt.figure(figsize=(10,6))
# 발간색 점선으로 그래프를 그리는 의미
plt.plot(t, t, "r--")
# 파란색인 사각형 그래프를 그리는 의미
plt.plot(t, t**2, "bs")
#초록색 삼각형 그래프를 그리는 의미
plt.plot(t, t**3, "g^")
plt.show()

커스텀 그래프 결과

 

plot()함수 옵션 

plot()함수의 옵션을 조금 더 자세히 다뤄보겠습니다.  아래 예시말고도 document를 보시면 더 자세하게 나와있으니 찾아보시는걸 추천드립니다. ㅎㅎ 

import matplotlib.pyplot as plt 




t = list(range(0, 7))
y = [1, 4, 5,8, 9, 3, 2]


plt.figure(figsize=(10,6))
plt.plot(
	t, 
    y,
    color= 'green', # 그래프 색이 초록색으로 주는 옵션
  	linestyle = 'dashed', # 그래프 형태를 주는 옵션 dashed는 점선 형태
	marker = 'o', # 마커는 동그라미 즉, t = 0일 때 y값이 1이니까 1인부분에 동그라미
    markerfacecolor = 'blue' # 마커 색상 파란색
    markersize= 15# 마커 크기 

)
# x축 범위를 늘려 줍니다 -0.5에서 6.5까지
plt.xlim([-0.5, 6.5])
#y축 범위를 0.5 ~0.5로 늘려줍니다.
plt.ylim([0.5,0.5])
plt.grid()
plt.show()


### 위 코드를 함수화
def drawGraphs():
    plt.figure(figsize=(10,6))
    plt.plot(
        t,
        y,
        color = 'blue', # 색이 초록색 모양으로 나옴 
        linestyle='dashed', # 점선 형태로
        marker='o', # 마커는 동그라미 모양
        markerfacecolor='blue', #마커 색은 파랑색
        markersize=15
    )
    # x 축 범위 xc축 끝이 6.5로 변한다 
    plt.xlim([-0.5, 6.5]) # 
    # 
    plt.ylim([0.5, 9.5])
    plt.grid()
    plt.show()

 

그림

그림을 보시면 파란색 마커가 15사이즈로 표시되고 점선 그래프로 만들어 져있는걸 볼 수 있습니다. 

 

포스팅이 너무 길어지고 있는거 같아서 다음 글에서 계속 작성하겠습니다. 위 내용중 틀린부분이 있을 수 있습니다. 혹시라도 틀린부분이 있다면 알려주시면 감사합니다. 

 

'Python' 카테고리의 다른 글

pandas 기초정리-3  (0) 2021.09.23
파이썬 matplotlib 기초-2  (0) 2021.09.19
pandas 기초정리 -2  (0) 2021.09.16
Pandas - 기초 정리  (1) 2021.09.16
파이썬-조건식  (0) 2021.09.15

댓글