티스토리 뷰

6개 그래프 그리기(plt.subplot 함수)

(출처: 《파이썬으로 배우는 머신러닝의 교과서》, 코드는 멘토님이 제공)

 

원래 코드 

import numpy as np
import matplotlib.pyplot as plt

#x를 정의 
x = np.linspace(-3, 3, 100) #x를 -3에서 3까지 100개 분할

def f2(x, w):
    return (x - w) * x * (x + 2) #함수 정의

plt.figure(figsize=(10, 3)) # (A) figure 지정
plt.subplots_adjust(wspace=0.5, hspace=0.5) # (B) 그래프 간격 지정

for i in range(6):
    #그래프 묘사의 위치 지정
    plt.subplot(2, 3, i+1) #subplot(nrows, ncols, index)
    plt.title('그래프'+str(i+1))
    plt.plot(x, f2(x, i), 'k')
    plt.ylim(-20, 20) # (F) y축 범위
    plt.grid(True)

plt.show()
그러나 보다시피 한글이 깨진다. 

폰트를 찾을 수 없댄다

 

한글이 깨지지 않게 하기 위해 DAY06 '그래프 꾸미기'의 코드를 활용했다.

from matplotlib import font_manager, rc
import platform

이 두 줄과

if platform.system() == 'Windows': 
    font_name = font_manager.FontProperties(fname='C:/Windows/Fonts/malgun.ttf').get_name()
    rc('font', family=font_name)
else:
    rc('font', family='AppleGothic')
    
matplotlib.rcParams['axes.unicode_minus']=False #마이너스 기호 오류 방지

이 줄을 추가하면 다음처럼 한글이 깨지지 않게 됨. 

더보기

전체 코드

import numpy as np
import matplotlib
import matplotlib.pyplot as plt
from matplotlib import font_manager, rc
import platform

if platform.system() == 'Windows': 
    font_name = font_manager.FontProperties(fname='C:/Windows/Fonts/malgun.ttf').get_name()
    rc('font', family=font_name)
else:
    rc('font', family='AppleGothic')
    
matplotlib.rcParams['axes.unicode_minus']=False #마이너스 기호 오류 방지

#x를 정의 
x = np.linspace(-3, 3, 100) #x를 -3에서 3까지 100개 분할

def f2(x, w):
    return (x - w) * x * (x + 2) #함수 정의
    
plt.figure(figsize=(10, 3)) # (A) figure 지정
plt.subplots_adjust(wspace=0.5, hspace=0.5) # (B) 그래프 간격 지정

for i in range(6):
    #그래프 묘사의 위치 지정
    plt.subplot(2, 3, i+1) #subplot(nrows, ncols, index)
    plt.title('그래프' + str(i+1))
    plt.plot(x, f2(x, i), 'k') #k는 색깔 
    plt.ylim(-20, 20) # (F) y축 범위
    plt.grid(True)
plt.show()

'공부 > Python' 카테고리의 다른 글

20201113 DAY11 벡터의 덧셈과 뺄셈  (0) 2020.11.13
20201113 DAY10 벡터  (0) 2020.11.13
20201111 DAY09 3차원 그래프 그리기  (0) 2020.11.11
20201110 DAY06 그래프 꾸미기  (0) 2020.11.10
20201110 DAY05 2차원 그래프 그리기  (0) 2020.11.10