-
Matplotlib (1) - 그래프파이썬 Python/데이터 분석 2022. 2. 16. 20:44
Matplotlib 패키지를 활용한 데이터 시각화
- 맷플롯립(Matplotlib)은 그래프나 차트 등 그래픽으로 표현하는데 사용하는 파이썬 기반 2D 시각화 라이브러리
- 판다스와 연계하여 데이터를 다양한 방식으로 시각화하는 기능을 제공한다.
- 숫자 데이터를 그래프로 시각화하면 한눈에 데이터를 파악할 수 있어서 편리하다.
- MATLAB(과학 및 공학 연산을 위한 소프트웨어)의 시각화 기능을 모델링해서 만들어졌다.
- 2차원 그래프(plot), 산점도(scatter plot), 막대 그래프(bar chart), 히스토그램(histogram), 파이 그래프(pie chart) 등을 그릴 수 있다.
선 그래프
from matplotlib import pyplot # 방법1 import matplotlib.pyplot as plt # 방법2 import numpy data1 = [10, 14, 19, 20, 25] # list 이용 # x축을 지정하지 않으면 0부터 1씩 증가값을 가지고, 데이터는 y축 값이 된다. pyplot.plot(data1) # (0, 10), (1, 14), (2, 19), (3, 20), (4, 25) 값으로 선 그래프 출력 pyplot.show() # 객체 정보없이 그래프만 출력 # numpy 배열 이용 arr = numpy.array(data1) pyplot.plot(arr) # (0, 10), (1, 14), (2, 19), (3, 20), (4, 25) 값으로 선 그래프 출력 pyplot.show() # 객체 정보없이 그래프만 출력 # x축, y축 값 지정 # plot(x축, y축) pyplot.plot([1, 2, 3, 4, 5], data1) pyplot.show()
우측 콘솔창 위의 Plots를 클릭하여 그래프 확인
2차원 선 그래프
from matplotlib import pyplot import numpy x = numpy.arange(-4.5, 5, 0.5) # 배열 생성, -4.5<=값<5, 0.5씩 증가 y = 2*x**2 # y = 2x² print('x :', x) print('y :', y) pyplot.plot(x, y) pyplot.show()
x : [-4.5 -4. -3.5 -3. -2.5 -2. -1.5 -1. -0.5 0. 0.5 1. 1.5 2.
2.5 3. 3.5 4. 4.5]
y : [40.5 32. 24.5 18. 12.5 8. 4.5 2. 0.5 0. 0.5 2. 4.5 8.
12.5 18. 24.5 32. 40.5]여러 그래프
from matplotlib import pyplot import numpy x = numpy.arange(-4.5, 5, 0.5) # 배열 생성, -4.5<=값<5, 0.5씩 증가 y1 = 5*x + 30 # y = 5x+30 y2 = 2*x**2 # y = 2x² y3 = 4*x**2 + 10 # y = 4x²+10 pyplot.plot(x, y1) # 선 그래프 출력 pyplot.show() pyplot.plot(x, y2) pyplot.show() pyplot.plot(x, y3) pyplot.show() pyplot.plot(x, y1, x, y2, x, y3) pyplot.show() pyplot.figure(1) # 번호 지정해서 그래프 창을 생성 pyplot.plot(x, y1) # 선 그래프 출력 pyplot.figure(1) # 1번 그래프 창에 추가 pyplot.plot(x, y3) pyplot.show()
2 x 2 행렬의 하위 그래프 위치 지정 후 그래프 출력
from matplotlib import pyplot import numpy # 데이터 생성 x = numpy.arange(0, 10, 0.1) y1 = 0.3*(x-5)**2 + 1 # y = 0.3(x-5)²+1 y2 = -1.5*x + 3 # y = -1.5x+3 y3 = numpy.sin(x)**2 # y = sin(x)² y4 = 10*numpy.exp(-x) + 1 # 2 x 2 행렬의 하위 그래프에 위치 지정 후 그래프 출력 pyplot.subplot(2, 2, 1) # (0, 0) 위치 pyplot.plot(x, y1) pyplot.subplot(2, 2, 2) # (0, 1) 위치 pyplot.plot(x, y2) pyplot.subplot(2, 2, 3) # (1, 0) 위치 pyplot.plot(x, y3) pyplot.subplot(2, 2, 4) # (1, 1) 위치 pyplot.plot(x, y4) pyplot.show()
그래프의 출력 범위 지정해서, 관심 영역을 확대해서 보기
from matplotlib import pyplot import numpy # 데이터 생성 x = numpy.linspace(-4, 4, 100) # [-4, 4] 범위에서 100개의 값 생성 y1 = x**3 # y = x³ y2 = 10*x**2 - 2 # y = 10x² - 2 # 데이터 확인 print("x : ") print(x) # 그래프 출력 pyplot.plot(x, y1, x, y2) pyplot.show() # 그래프 확대해서 보기 pyplot.plot(x, y1, x, y2) pyplot.xlim(-1, 1) pyplot.ylim(-3, 3) pyplot.show()
선 색상, 선 스타일, 마커 지정
from matplotlib import pyplot import numpy # 데이터 생성 x = numpy.arange(0, 5, 1) # 0~4 정수 배열 생성 y1 = x y2 = x + 1 y3 = x + 2 y4 = x + 3 # 그래프 출력 pyplot.plot(x, y1, x, y2, x, y3, x, y4) pyplot.show() # 선 색상 지정 : magenta, yellow, black, cyan pyplot.plot(x, y1, 'm', x, y2, 'y', x, y3, 'k', x, y4, 'c') pyplot.show() # 선 스타일 지정 : 실선, 파선, 점선, 파선 점선 혼합선 pyplot.plot(x, y1, '-', x, y2, '--', x, y3, '-.') pyplot.show() # 마커 지정 : 원, 삼각형, 사각형, 다이아몬드 pyplot.plot(x, y1, 'o', x, y2, '^', x, y3, 's', x, y4, 'd') pyplot.show() # 선 색상, 선 스타일, 마커를 혼합해서 지정 pyplot.plot(x, y1, 'm-o', x, y2, 'y--^', x, y3, 'k:s', x, y4, 'c-.d') pyplot.show()
x축 라벨, y축 라벨, 그래프 제목, 범례 추가
from matplotlib import pyplot import numpy # 데이터 생성 x = numpy.arange(0, 5, 0.5) # 0~4.5 배열 생성 y1 = x y2 = x + 1 y3 = x + 2 y4 = x + 3 # 그래프 출력 pyplot.plot(x, y1) pyplot.xlabel('X-axis') # x축에 문자열 출력 pyplot.ylabel('Y-axis') # y축에 문자열 출력 pyplot.title('Plot Graph') # 제목 출력 pyplot.grid(True) # 격자 출력, True는 생략 가능 pyplot.show() # 선 색상, 선 스타일, 마커를 혼합해서 지정 pyplot.plot(x, y1, 'm-o', x, y2, 'y--^', x, y3, 'k:s', x, y4, 'c-.d') pyplot.legend(['data1', 'data2', 'data3', 'data4']) # 범례 출력 pyplot.show() pyplot.plot(x, y1, 'm-o', x, y2, 'y--^', x, y3, 'k:s', x, y4, 'c-.d') # 범례 위치지정, 위는 upper 아래는 lower pyplot.legend(['y = x', 'y = x + 1', 'y = x + 2', 'y = x + 3'], loc='lower right') pyplot.show()
matplotlib 그래프에 한글 사용하기
from matplotlib import pyplot import numpy # 데이터 생성 x = numpy.arange(-1, 5, 0.5) # 0~4.5 배열 생성 y1 = x y2 = x + 1 y3 = x + 2 y4 = x + 3 # 그래프 출력 # 선 색상, 선 스타일, 마커를 혼합해서 지정 pyplot.plot(x, y1, 'm-o', x, y2, 'y--^', x, y3, 'k:s', x, y4, 'c-.d') pyplot.xlabel('X-axis') # x축에 문자열 출력 pyplot.ylabel('Y-axis') # y축에 문자열 출력 pyplot.title('Plot Graph') # 제목 출력 pyplot.grid(True) # 격자 출력, True는 생략 가능 pyplot.legend(['data1', 'data2', 'data3', 'data4']) # 범례 출력 pyplot.show() # 한글 설정 pyplot.rcParams['font.family'] = 'Malgun Gothic' # 맑은 고딕으로 설정 pyplot.rcParams['axes.unicode_minus'] = False # 마이너스 기호 깨짐 방지 pyplot.plot(x, y1, 'm-o', x, y2, 'y--^', x, y3, 'k:s', x, y4, 'c-.d') pyplot.xlabel('X축') # x축에 문자열 출력 pyplot.ylabel('Y축') # y축에 문자열 출력 pyplot.title('선 그리기') # 제목 출력 pyplot.grid(True) # 격자 출력, True는 생략 가능 pyplot.legend(['데이터1', '데이터2', '데이터3', '데이터4']) # 범례 출력 pyplot.show() pyplot.plot(x, y1, 'm-o', x, y2, 'y--^', x, y3, 'k:s', x, y4, 'c-.d') pyplot.text(0, 6, '데이터1') # (0, 6) 좌표에 '데이터1' 출력 pyplot.text(0, 5, '데이터2') # (0, 5) 좌표에 '데이터2' 출력 pyplot.text(3, 1, '데이터3') # (3, 1) 좌표에 '데이터3' 출력 pyplot.text(3, 0, '데이터4') # (3, 0) 좌표에 '데이터4' 출력 pyplot.show()
'파이썬 Python > 데이터 분석' 카테고리의 다른 글
Matplotlib (3) - 파이 그래프, 상자 그림 (0) 2022.02.16 Matplotlib (2) - 산점도, 막대 그래프, 히스토그램 (0) 2022.02.16 파이썬 확장 패키지 : numpy (2) (0) 2022.02.15 파이썬 확장 패키지 : numpy (1) (0) 2022.02.14 반복문 - while (0) 2022.02.09