파이썬 - 6일차 (CDS1 3일차/matplotlib)

Junyong-Ahn·2024년 3월 13일

Python+시각화

목록 보기
8/9

matplotlib 을 이용한 그리기 기초

import numpy as py
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
import warnings

warnings.filterwarnings('ignore')

# Unicode warning 제거 (폰트 관련 경고메시지)
plt.rcParams['axes.unicode_minus'] = False
# 한글 폰트 설정
plt.rcParams['font.family'] = 'NanumGothic'
# 그래프 출력 사이즈 설정
plt.rcParams['figure.figsize'] = (12,8)

단일 그래프 생성

data = np.arange(1, 100)
plt.plot(data)
plt.show()

다중 그래프 생성 (1개의 canvas 안에 그리기)

data = np.arange(1,51)
plt.plot(data)

data2 = np.arange(50,100)
plt.plot(data2)
plt.show()

다중 그래프 생성 (2개의 figure/canvas 안에 그리기)

data = np.arange(100,201)
plt.plot(data)

data2 = np.arange(200,301)
plt.figure()  # 새로운 canvas 생성
plt.plot(data2)
plt.show()

여러개의 plot을 그리는 방법: subplot

data = np.arange(100,201)
plt.subplot(2,1,1)
plt.plot(data)

data2 = np.arange(200,301)
plt.subplot(2,1,2)
plt.plot(data2)

plt.show()

여러개의 plot을 그리는 방법: subplots(배치를 정하고 시작)

data = np.arange(1,51)
fig, axes = plt.subplots(2,3)

axes[0,0].plot(data)
axes[0,1].plot(data*data)
axes[0,2].plot(data**3)
axes[1,0].plot(data%10)
axes[1,1].plot(-data)
axes[1,2].plot(data//20)

plt.tight_layout()
plt.show()

matplotlib 세부사항 설정

예제

# marker: 마커 모양 / linestyle: line 모양 / color: 색 / alpha: 투명도
plt.plot(np.arange(10), np.arange(10)*2, marker = 'o', linestyle='-', color = 'b', alpha = 0.1)
plt.plot(np.arange(10), np.arange(10)**2, marker = 'v', linestyle='--', color='c', alpha = 0.3)
plt.plot(np.arange(10), np.log(np.arange(10))+10, marker = '+', linestyle='-.', color='y', alpha = 0.6)
plt.plot(np.arange(10), np.arange(10)*2+10, marker = '*', linestyle=':', color='r', alpha = 1.0)

# 타이틀 & 폰트 설정
plt.title('Example', fontsize = 15)

# x,y label 설정
plt.xlabel('X axis', fontsize = 15)
plt.ylabel('Y axis', fontsize = 15)

# x,y tick 설정
plt.xticks(rotation=90)
plt.yticks(rotation=30)

# legend 설정
plt.legend(['10 * 2','10 ** 2','log+10','10*2+10'], fontsize = 10)

# x,y limit 설정
plt.xlim(1,6)
plt.ylim(0,30)

# annotate 설정
plt.annotate('here', xy = (4,17), xytext=(4,13), arrowprops = dict(facecolor='black', shrink = 0.05))

#그리드 설정
plt.grid()
plt.show()

속성 이미지

업로드중..

다양한 플롯

  • scatter(산점도)
  • bar, barh(바)
  • line(선)
  • area
  • histogram
  • pie
  • box
  • projection 3d(3D공간 플롯)
  • imshow (이미지 시각화)

0개의 댓글