반응형

matplotlib의 기초

주피터에서 matplotlib을 사용할 때 기본적으로 아래 코드를 적고 시작하는게 좋음

%matplotlib inline

각종 import

%matplotlib inline

import numpy as np
import matplotlib.pyplot as plt

간단한 그래프 그리기

linspace() 함수로 x좌표의 데이터를 배열로 생성, 이것을 곱해서 y 좌표로 함

그리고 plt의 plot()함수로 x, y좌표의 데이터를 플롯하고 show() 함수로 그래프 표시

*플롯(plot): 구성

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-5, 5)
y = x * x * x

plt.plot(x, y)
plt.show()

 

그래프 꾸미기

→ 외관을 꾸며야 보기 좋아짐

축의 라벨(축 이름) plt.xlabel(), plt.ylabel()

그래프의 타이틀(그래프 제목) plt.title()
그리드(격자) 표시 plt.grid()
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import rc

# Mac에서 Matplotlib 한글 깨질 때 아래 두 줄 사용!
rc('font', family='AppleGothic')
plt.rcParams['axes.unicode_minus'] = False

x = np.linspace(-5, 5)
y_1 = 2 * x
y_2 = 3 * x

# 축의 라벨
plt.xlabel("x축", size=14)# 축 라벨의 문자 크기를 14로 지정
plt.ylabel("y축", size=14)

# 그래프의 타이틀
plt.title("그래프의 제목")

# 그리드 표시 - 격자 무늬 말하는 거임
plt.grid()

# 플롯 시에 범례와 선의 스타일을 지정 
plt.plot(x, y_1, label='y1')
plt.plot(x, y_2, label='y2')
plt.legend() # 범례 표시 - 좌측 상단에 있는 작은 네모 박스

plt.show()

산점도: scatter()

import numpy as np
import matplotlib.pyplot as plt

x = np.array([1.2, 2.4, 0.0, 1.4, 1.5, 0.3, 0.7])  # x좌표
y = np.array([2.4, 1.4, 1.0, 0.1, 1.7, 2.0, 0.6])  # y좌표

plt.scatter(x, y)  # 산포도의 플롯
plt.grid()
plt.show()

히스토그램: hist()

import numpy as np
import matplotlib.pyplot as plt
 
data = np.array([0, 1, 1, 2, 2, 2, 3, 3, 4, 5, 6, 6, 7, 7, 7, 8, 8, 9])

plt.hist(data, bins=10)  # 히스토그램  bins는 기둥의 수
plt.show()

Practice

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-5, 5) # x의 범위를 지정
y_1 = x*x # x에 연산을 시행하는 y_1로 한다
y_2 = x*x*x # x에 연산을 시행하는 y_2로 한다

# 축의 라벨
plt.xlabel("x value", size=14)
plt.ylabel("y value", size=14)

# 그래프의 타이틀
plt.title("Matplotlib Exercise")

# 그리드 표시
plt.grid()

# 플롯 범례와 선의 스타일을 지정
plt.plot(x, y_1, label="y1")
plt.plot(x, y_2, label="y2", linestyle="dashed")
plt.legend() # 범례를 표시

plt.show()