Python Library/Matplotlib

[Matplotlib - Python] Matplotlib 라이브러리와 파일 저장, 텍스트 처리, 여러 데이터 처리

바보1 2022. 2. 9. 19:49

기본 데이터

 

 

import pandas as pd
import matplotlib.pyplot as plt
import matplotlib
matplotlib.rcParams['font.family'] = 'Malgun Gothic' # Windows
# matplotlib.rcParams['font.family'] = 'AppleGothic' # Mac
matplotlib.rcParams['font.size'] = 15
matplotlib.rcParams['axes.unicode_minus'] = False
x = [1, 2, 3]
y = [2, 4, 8]

1. 파일 저장

 

plt.figure(dpi = 200)
plt.plot(x,y)
plt.savefig('graph.png', dpi = 100)

이렇게 하시면 화면에 출력되는 그래프의 dpi = 200이지만, 파일에 저장되는 그래프의 dpi = 100입니다.


2. 텍스트 처리

 

그래프 안에 텍스트를 넣기 위해서는 plt.text() 함수를 쓰면 됩니다.

 

plt.plot(x,y,marker='o')

for idx, txt in enumerate(y): # x = [1, 2, 3], y = [2, 4, 8]
    plt.text(x[idx], y[idx] + 0.3, txt, ha='center', color = 'b') # ha = 수평에 맞춰주는 것

x[idx]를 통해 x의 좌표에, y[idx]를 통해서 y의 좌표에 txt, 텍스트를 넣었습니다. y[idx] + 0.3은 텍스트가 너무 아래에 있어서 일부로 추가했습니다. ha = 'center'로 설정하면 marker와 txt가 수평에 맞춰집니다.


3. 여러 데이터

 

days = [1, 2, 3] # 1일, 2일, 3일
az = [2, 4, 8] # (단위 : 만명) 1일부터 3일까지 아스트라제네카 접종인구
pfizer = [5, 1, 3]
moderna = [1, 2, 5]

plt.plot(days, az)
plt.plot(days, pfizer)
plt.plot(days, moderna)

생각보다 별 거 없습니다. 그냥 plot을 여러 개 찍어주고 show 해준 게 다입니다.

 

plt.plot(days, az, label = 'az')
plt.plot(days, pfizer, label = 'pfizer', marker = 'o', ls = '--')
plt.plot(days, moderna, label = 'moderna', marker = 's', ls = '-.')

plt.legend(ncol = 3) # 컬럼을 3개로

이렇게 해주면 모두 따로 설정이 가능합니다.

 

참고로 ncol=3을 없애고 한 번 실행해보시면 무슨 차이가 있는지 아실 겁니다.