Matplotlib
[๋งทํ๋กฏ๋ฆฝ]
ํ์ด์ฌ์์ ๋ง๋ ๊ทธ๋ํ, ์์๊ทธ๋ฆผ, ์ ๊ทธ๋ํ, ์ฐ์ ๋, ํ์คํ ๊ทธ๋จ ๋ฑ์ ํต๊ณ ๊ทธ๋ํ๋ค์ ๋ง๋ค๊ธฐ ์ํ ๊ทธ๋ํ ํจํค์ง
โข
๋ง๋ ๊ทธ๋ํ
โข
ํ์คํ ๊ทธ๋จ
โข
์ ๊ทธ๋ํ
โข
์ฐ์ ๋
โข
์์๊ทธ๋ฆผ
๋ง๋ ๊ทธ๋ํ
๋ฒ์ฃผํ ๋ฐ์ดํฐ ์์น๋ฅผ ์์ฝํ๋ ๊ทธ๋ฆผ
- ๊ฐ๋ก, ์ธ๋ก, ๋์ , ๊ทธ๋ฃน ํํ์ ๊ทธ๋ํ๋ฅผ ๋ํ๋ธ๋ค.
- X์ถ, Y์ถ, ๋ผ๋ฒจ ๋ฑ์ ์ง์ ํ๋ค.
# ๋ง๋ ๊ทธ๋ํ
import matplotlib.pyplot as plt
# ํ๊ธ ํฐํธ ์ค์
plt.rcParams['font.family'] ='Malgun Gothic'
# ๋ฐ์ดํฐ
names = ['apple', 'grape', 'strawberry']
values = [50, 128, 70]
colors = ['red', 'green', 'blue']
# ๋ง๋๊ทธ๋ํ ์ค์
# plt.bar( x์ถ ๋ฐ์ดํฐ, y์ถ ๋ฐ์ดํฐ )
plt.bar(names, values, align='center', color=colors)
# ์ ๋ชฉ ๋ฐ ๋ผ๋ฒจ
plt.title('๊ณผ์ผ ํ๋งค๋')
plt.xlabel('๊ณผ์ผ')
plt.ylabel('ํ๋งค๋')
# y์ถ ์ต์๊ฐ, ์ต๋๊ฐ ์ง์
# plt.ylim(0, 200)
# ๋๊ธ ๋จ์๋ฅผ ์ง์
# 0~200 ๊น์ง 10 ๋จ์๋ฅผ ๋๊ธ ์ง์
plt.yticks( range(0, 200, 10) )
# ๊ทธ๋ํ ์ด๋ฏธ์ง ์ ์ฅ
plt.savefig('๋ง๋๊ทธ๋ํ.png', dpi=400, bbox_inches='tight')
# ๊ทธ๋ํ ์ถ๋ ฅ
plt.show()
Python
๋ณต์ฌ
ํ์คํ ๊ทธ๋จ
๋ฐ์ดํฐ ๋ถํฌ๋ฅผ ์๊ฐํํ ๊ทธ๋ํ๋ก ์ฐ์๋ ๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ ๋ํ๋ธ๋ค.
๋ง๋ ๊ทธ๋ํ vs ํ์คํ ๊ทธ๋จ
โข
๋ง๋ ๊ทธ๋ํ : x์ถ ๋ฐ์ดํฐ๊ฐ ๋จ์ผํ ํญ๋ชฉ์ ๋ํด์ y์ถ์ ์์น๋ฅผ ํํํ ๊ทธ๋ํ
โข
ํ์คํ ๊ทธ๋จ : x์ถ ๋ฐ์ดํฐ๊ฐ ์ฐ์๋ ๋ฒ์(๊ตฌ๊ฐ)์ ์๋ฏธํ๊ณ , ํด๋น ๋ฒ์์ ๋ํ ๋์์ ๋ถํฌ๋ฅผ ๋ํ๋ ๊ทธ๋ํ (๋ถํฌ๋๋ฅผ ๋ํ๋ด๊ธฐ ์ํ ๊ทธ๋ํ)
# ํ์คํ ๊ทธ๋จ
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.family'] ='Malgun Gothic'
# ํ์๋ค์ ์ฑ์ ๋ถํฌ๋ฅผ ํ์คํ ๊ทธ๋จ์ ์ถ๋ ฅ
# ๋ฐ์ดํฐ
# np.random.normal(loc= ํ๊ท , scale= ํ์คํธ์ฐจ, size= ๋ฐ์ดํฐ๊ฐ์)
scores = np.random.normal(loc= 70, scale= 10, size= 500)
# ํ์คํ ๊ทธ๋จ ๊ทธ๋ํ ์ค์
plt.hist(scores, edgecolor='black', color='blue')
# ์ ๋ชฉ ๋ฐ ๋ผ๋ฒจ
plt.title('ํ์๋ค์ ์ฑ์ ๋ถํฌ')
plt.xlabel('์ฑ์ ')
plt.ylabel('๋น๋')
# ๊ทธ๋ํ ์ด๋ฏธ์ง ์ ์ฅ
plt.savefig('ํ์คํ ๊ทธ๋จ.png', dpi=400)
# ๊ทธ๋ํ ์ถ๋ ฅ
plt.show()
Python
๋ณต์ฌ
์ฐ์ ๋
๋ ๋ณ์ ๊ฐ์ ๊ด๊ณ๋ฅผ ์๊ฐ์ ์ผ๋ก ํํํ ๊ทธ๋ํ
โ์ฐ์ ๋โ : ํฉ์ด์ ธ์๋ ์ ์ ํ์ํ ๊ทธ๋ฆผ
์์ ์๊ด๊ด๊ณ, ์์ ์๊ด๊ด๊ณ๋ฅผ ํ์
ํ ์ ์๋ค.
์ด์์น ์๋ณ
ํ๋์ ๋ณ์์ ๋ฐ๋ฅธ ๋ค๋ฅธ ๋ณ์์ ์์น๊ฐ ๋ณํํ๋ ์ถ์ด๋ฅผ ์์ธกํด๋ณผ ์ ์๋ค.
import matplotlib.pyplot as plt
import numpy as np
from scipy.stats import linregress
plt.rcParams['font.family'] ='Malgun Gothic'
plt.rcParams['axes.unicode_minus'] =False
# ๋ฐ์ดํฐ
np.random.seed(50)
x = np.random.randn(100)
y = 2 * x + np.random.randn(100)
# ์ถ์ธ์ ๊ณ์ฐ
# slope : ๊ธฐ์ธ๊ธฐ
# intercept : ์ ํธ
# r_value : (ํผ์ด์จ)์๊ด๊ณ์
# - ๋ ๋ณ์ ๊ฐ์ ์ ํ ๊ด๊ณ์ ๊ฐ๋์ ๋ฐฉํฅ
# p_value : ์ ์์ฑ ๊ฒ์ ๊ฒฐ๊ณผ (ํ๊ท์์ด ํต๊ณ์ ์ผ๋ก ์ ์๋ฏธ)
# std_err : ๊ธฐ์ธ๊ธฐ ์ถ์ ๊ฐ์ ํ์ค์ค์ฐจ
slope, intercept, r_value, p_value, std_err = linregress(x,y)
# ์ ๊ทธ๋ํ ๋ฐ์ดํฐ
line = slope * x + intercept
# y = ax + c
plt.plot(x, line, color='orange', label='์ถ์ธ์ ')
print('์ ํธ : {}'.format(intercept))
# ๊ทธ๋ํ ์ค์
# s : ์ ์ ํฌ๊ธฐ
plt.scatter(x, y, edgecolors='black', s=20)
# ์ ๋ชฉ ๋ฐ ๋ผ๋ฒจ
plt.title('์ฐ์ ๋ ๋ฐ์ดํฐ')
plt.xlabel('X ์ถ')
plt.ylabel('Y ์ถ')
# ๊ทธ๋ํ ์ด๋ฏธ์ง ์ ์ฅ
plt.savefig('์ฐ์ ๋.png', dpi=400)
# ๊ทธ๋ํ ์ถ๋ ฅ
plt.show()
Python
๋ณต์ฌ
์์๊ทธ๋ฆผ (Box plot)
์ต์๊ฐ, 1์ฌ๋ถ์(25%), 2์ฌ๋ถ์(์ค์๊ฐ;50%), 3์ฌ๋ถ์(75%), ์ต๋๊ฐ์ด๋ผ๋ 5๊ฐ์ง ํต๊ณ๋์ ๊ธฐ์ค์ผ๋ก ๋ํ๋ธ ๊ทธ๋ฆผ
โข
์์ผ : ์์ ๋ฐ์ ์๋ ์ง์ , ์ด์์น๊ฐ ์๋ ๋ฐ์ดํฐ ๋ค ์ค ์ต๋๊ฐ, ์ต์๊ฐ
โข
์ด์์น : ์ด์ํ ๋ฐ์ดํฐ, ์์ ๋ฐ์ ์กด์ฌํ๋ ๋ฐ์ดํฐ
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.family'] ='Malgun Gothic'
plt.rcParams['axes.unicode_minus'] =False
# ๋ฐ์ดํฐ
np.random.seed(5)
data = np.random.normal(loc=0, scale=1, size=100)
# ๊ทธ๋ํ ์ค์
# notch : ๋
ธ์น(ํ์ฌ์ง ํ) ์ฌ๋ถ
# sym : ํน์ด์ ํ์ ๊ธฐํธ
# showmeans : ํ๊ท ํ์ ์ฌ๋ถ
plt.boxplot(data, notch=True, sym='+', showmeans=True)
# ์ ๋ชฉ ๋ฐ ๋ผ๋ฒจ
plt.title('์์๊ทธ๋ฆผ ๋ฐ์ดํฐ')
plt.xlabel('๋ฐ์ดํฐ')
plt.ylabel('๊ฐ')
# ๊ทธ๋ํ ์ด๋ฏธ์ง ์ ์ฅ
plt.savefig('์์๊ทธ๋ฆผ.png', dpi=400)
# ๊ทธ๋ํ ์ถ๋ ฅ
plt.show()
Python
๋ณต์ฌ