728x90
[ Matplotlib 사용하여 그래프 그리기 ]
머신러닝에서 모델을 구현하는 것도 중요하지만, 학습할 데이터를 선별하고 만들어진 모델을 검증하기 위해서는
데이터를 이해하는 것이 필수적이고 이를 위해서는 데이터를 시각화해서 보는 것이 매우 중요하다고 한다.
Python에서 가장 널리 사용되는 데이터 시각화 라이브러리 Matplotlib로 데이터 시각화를 해보았다 !
◈ Matplotlib ?
: Python 프로그래밍 언어 및 수학적 확장 Numpy 라이브러리를 활용한 플로팅 라이브러리
: 그래프, 차트, 플롯 등 다양한 시각화 요소를 생성하고 데이터를 시각적으로 나타낼 수 있다.
%matplotlib inline # Jupyter Notebook 사용시 추가해줘야 됨.
import matplotlib # Googlo Colab 사용시 추가해줘야됨.
import pandas as pd
◇ 기본 그래프 그리기 (선 그래프)
: 수치적 변화를 알아볼 때 적합한 그래프. Data의 값이 숫자가 아닐 때는 오류가 발생하니 주의할 것 !
import matplotlib.pyplot as plt
import numpy as np
# 그래프 데이터 세팅.
months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
sales_2019 = [100,120,140,110,130,150,160,170,180,200,190,210]
sales_2020 = [90,110,130,120,140,160,170,160,150,180,200,190]
# 그래프 생성
x = np.arange(12)
plt.plot(sales_2019, label='2019')
plt.plot(sales_2020, label='2020')
plt.legend(loc='best') # 범례 표시 [best : 겹침이 최소화 되는 최적의 위치]
plt.xticks(x, months) # x축 눈금 표시
# 타이틀 레이블 설정.
plt.title('Monthly Sales Comparion (2019-2020)')
plt.xlabel('Month')
plt.ylabel('Sales')
plt.show()
▼ 그래프 출력 결과
☞ 범례 표시방법
plt.legend(loc=(), ncol=열의 개수, fontsize, frameon, shadow)
- loc=(0, 0) : 왼쪽 아래
- loc=(1, 1) : 오른쪽 위
- loc=‘best’ : 겹침이 최소화되는 최적의 위치
- loc=‘lower right’ : 오른쪽 아래
- 등등 ...
※ 다양한 범례 표시 방법 아래 사이트 참고.
https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.legend.html
◇ 막대그래프 그리기
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(5)
categories = ['Category 1','Category 2','Category 3','Category 4','Category 5']
data = [20, 35, 15, 27, 45]
# 그래프 생성
plt.bar(x, data, color=['b'], width=0.6)
plt.xticks(x, categories, rotation=45) # rotation : 기울기 설정
plt.ylim(0,50) # y축 범위 설정
# 그래프 레이블 범례 설정
plt.xlabel('Categories', loc='center')
plt.ylabel('Values', loc='center')
plt.title('Bar Chat',loc='center', pad=20)
plt.grid(True, axis = 'both') # 그리드 눈금 설정. axis='x'or'y'or'both'
plt.show()
▼ 그래프 출력 결과
◇ 파이차트 그리기
import matplotlib.pyplot as plt
import numpy as np
# 데이터 생성
labels = ['Apple', 'Banana', 'Mango', 'Blueberry']
ratio = [15, 30, 45, 10]
explode = [0, 0.1, 0, 0] # Banana 부분에서만 강조하기 위해
# 파이 차트 생성
# autopct : 소수점 자리, explode : 부채꼴이 파이 차트의 중심에서 벗어나는 정도
plt.pie(ratio, labels=labels, autopct='%.1f%%', explode=explode, colors=['blue','orange','green', 'red'], startangle=90, shadow=True)
plt.show()
▼ 그래프 출력 결과
◇ sin, cos 그래프 그리기
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
# sin cos 함수의 값을 계산.
y_sin = np.sin(x)
y_cos = np.cos(x)
# 그래프 그리기
plt.plot(x, y_sin, color='b', label='sin(x)')
plt.plot(x, y_cos, color='r', label='cos(x)')
# 그래프에 레이블과 범례 추가
plt.xlabel('X', loc='center')
plt.ylabel('Y', loc='center')
plt.title('Sine and Cosine Functions',loc='center', pad=10)
plt.grid(True, axis = 'both')
plt.legend()
# 그래프 보여주기
plt.show()
▼ 그래프 출력 결과
728x90
반응형
'BE > Python' 카테고리의 다른 글
[Python] 번호판 인식 데이터셋 생산하기 (가상 차량 번호판 생성) (1) | 2024.01.29 |
---|---|
[Python] 데이터 시각화 - Seaborn 통계 데이터 시각화 (1) | 2023.11.21 |
[Python] pandas로 데이터 분석하기 - DataFrame 생성. (0) | 2023.11.17 |
[Python] Numpy 유용한 함수 (통계 함수) (0) | 2023.11.16 |
[Python] Numpy란? numpy array 생성하기 (0) | 2023.11.14 |
댓글