본문 바로가기
PROGRAMMING/PYTHON

[Python] Matplotlib

by 안녕나는현서 2021. 4. 26.
728x90

- Matplotilb

  • 기본적인 시각화가 가능한 라이브러리

 

import matplotlib.pyplot as plt

 

- plot() : 라인을 그릴 때 사용

data = [1, 2, 3, 4, 5, 4, 3, 2, 1]

plt.plot(data)
plt.show()

 

- 라인 스타일 변경하기 : ls (line style), lw(line width)

  • line style
    • '-' : 실선
    • '--' : 점선
    • '-.' : 선과 점의 반복
    • ':' : 촘촘한 점선
x = [0, 1, 2, 3, 4]
y = [1, 2, 3, 4, 5]

plt.plot(x, y, ls = '-.', lw = '3')
plt.show()

 

- 그래프 크기 조정

plt.figure(figsize = (3, 4))
# 사이즈는 인치 기준
plt.plot(x, y)
plt.show()

 

- 색깔 바꾸기

plt.figure(figsize = (3, 4))
plt.plot(x, y, color = 'r')
plt.show()

 

- 마커 스타일 설정

  • marker style
    • o : 동그라미
    • v, <, > : 방향 세모
    • p : 오각형
# marker size = ms
# marker edge color = mec
# marker edge width = mew
# marker face color = mfc

plt.figure(figsize = (3, 4))
plt.plot(x, y, color = 'r',
         marker = 'p', ms = '10', mec = 'y', mew = '2', mfc = 'g')
plt.show()

 

- 그래프 라벨링

plt.figure(figsize = (3, 4))
plt.plot(x, y, color = 'r', label = 'data',
         marker = 'p', ms = '10', mec = 'y', mew = '2', mfc = 'g')
plt.title('data graph') # 그래프 제목
plt.legend() # 범례
plt.xlabel('x-data') # x축 라벨링
plt.ylabel('y-data') # y축 라벨링
plt.show()

 

- 여러 개의 선 동시에 그래프에 그리기

x = [0, 1, 2, 3, 4]
y1 = [5, 3, 4, 1, 2]
y2 = [2, 1, 3, 5, 4]
y3 = [4, 2, 1, 3, 5]

plt.figure(figsize=(5,4))
plt.plot(x, y1, label = 'data1')
plt.plot(x, y2, label = 'data2')
plt.plot(x, y3, label = 'data3')
plt.legend()
plt.title('Data graph')
plt.xlabel('xData')
plt.ylabel('yData')
plt.show

 

- 여러 개의 그래프 한 번에 그리기

  • Figure : 그림을 그릴 수 있는 영역 자체
  • Subplot : 실제 그림이 그려지는 영역
fig = plt.figure()

x1 = fig.add_subplot(221) # 행번호, 열번호, 그림번호
x2 = fig.add_subplot(222)
x3 = fig.add_subplot(223)

plt.show()

 

- 데이터 프레임에서 활용하기

trafic_data = pd.DataFrame(
    [[9800,5500, 99, 980, 20000],[10200,6600, 0, 1020, 20000], 
     [12500, 4520, 3000, 780, 21000], [2000, 2000, 2000, 2000, 2000]],
    index=['10/22','10/23', '10/24', '10/25'],
    columns=['원티드','사람인', '잡플래닛', '잡코리아', '스펙업'])
trafic_data

# matplotlib 임포트,  주피터 출력설정,  한글 글꼴 지정

import matplotlib.pyplot as plt

%matplotlib inline

from matplotlib import font_manager, rc
font_name = font_manager.FontProperties(fname='C:/Windows/Fonts/malgun.ttf').get_name()
rc('font', family=font_name)
# Series 그래프
trafic_data.loc['10/22'].plot()

# DataFrame 그래프

trafic_data.plot(grid=True)

# 막대 그래프

trafic_data.plot(kind='bar', title='Trafic Data')

# 산점도

trafic_data.plot(kind='scatter', grid=True, x='원티드', y='사람인')

# subplot : 한 화면에 여러 그래프를 나눠서 그림

trafic_data.plot(subplots=True)

728x90

댓글