
matplotlib์ ํ์ด์ฌ์์ ๋ฐ์ดํฐ๋ฅผ ์๊ฐํํด์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค.
1.๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ํฌํธ
matplotlib๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ importํ๋๋ฐ ์ฃผ๋ก matplotlib.pyplot์ ๋ง์ด ์ฌ์ฉํฉ๋๋ค.
import matplotlib.pyplot as plt
2.์์ฃผ ์ฌ์ฉ๋๋ Plotting์ Options
figsizetitle_label_ticslegend3.๊ฐ๋จํ ์ฌ์ฉ
plt.plot([2,4,1,4.5,5.1])#๊บพ์์ ๊ทธ๋ํ, ์ค์ plotting์ ํ๋ ํจ์
plt.show()#plt๋ฅผ ํ์ธํ๋ ๋ช
๋ น
plt.plot()๋ ๊บพ์์ ๊ทธ๋ํ๋ก ์ค์ plotting์ ํ๋ ํจ์์
๋๋ค.
๊ทธ ํ plt.show()๋ฅผ ํตํด plottingํ ๊ทธ๋ํ๋ฅผ ํ์ธํฉ๋๋ค.
๋ฐ์ ์ ๊ฐ์ด ์ถ๋ ฅ๋ฉ๋๋ค.

x = np.array([1,2,3,4,5])#์ ์์ญ์ ์ญํ
y = np.array([1,4,9,16,25])#์น์ญ์ ์ญํ
plt.plot(x,y)
plt.show()

x,y์ขํ๋ค์ ๊ฐ๋ค์ ๊ฐ๊ฐ ์ค์ ํ์ฌ plt.plot()์์ ์ธ์๋ก ์ฃผ๊ฒ๋๋ฉด
ํจ์์ฒ๋ผ ๊ทธ๋ํ๊ฐ ํํ๋๋ค. ์ฌ๊ธฐ์ x,y๋ณ์๋ ๊ฐ๊ฐ ์ ์์ญ,์น์ญ์ ์ญํ ์ ํ๊ฒ๋๋ค.
x = np.arange(-10,10,0.01)#-10์์ 10๊น์ง 0.1์ ๊ฐ๊ฒฉ์ผ๋ก
plt.plot(x, x**2)
plt.show()

y์ธ์ ๋ถ๋ถ์ x^2 ๊ฐ์ ๋ฃ์ผ๋ฉด y=x^2 ํจ์์ ํํ๋ฅผ ๋๊ฒ ๋๋ค.
plt.figure(figsize=(3,3))
plt.figure()๋ plottingํ ๋๋ฉด์ ์ ์ธํ๋ ๊ฒ์ด๊ณ ์ ์ธํ ๋, figsize()์์ ๋๋ฉด์ ํฌ๊ธฐ๋ฅผ ๋ฃ์ด ์ค์ ํ ์ ์๋ค.
#x,y์ถ์ ์ค๋ช
์ถ๊ฐํ๊ธฐ
x = np.arange(-10,10,0.01)
plt.xlabel("x value")
plt.ylabel("y value")
plt.plot(x, x**2)
plt.show()
์์ plot์์ plt.label(" value")์ ์ถ๊ฐํ๊ฒ ๋๋ฉด ๋ฐ์ ๊ทธ๋ฆผ๊ฐ์ด ๊ฐ ์ถ์ ์ด๋ฆ์ด ์ค์ ๋๋ค.

plt.axis([-5,5,0, 25])#[x_min,x_max,y_min,y_max]
์ด ๋ช
๋ น์ ์ถ๊ฐํ๊ฒ ๋๋ฉด x์ถ๊ณผ y์ถ์ ๋ฒ์๊ฐ ๊ฐ ๊ฐ (x_min,x_max),(y_min,y_max)๋ก ์ค์ ๋์ด ๋ฐ์ ๊ทธ๋ฆผ์ฒ๋ผ ์ถ๋ ฅ๋๋ค.

plt.xticks([i for i in range(-5, 6,1)])
plt.yticks([i for i in range(0,25,3)])
์ด ๋ช
๋ น์ ์ถ๊ฐํ๊ฒ ๋๋ฉด x์ถ์ ๋๊ธ์ด -5๋ถํฐ 5 ๊น์ง 1์ ๊ฐ๊ฒฉ์ผ๋ก, y์ถ์ ๋๊ธ์ด 0๋ถํฐ 24 ๊น์ง 3์ ๊ฐ๊ฒฉ์ผ๋ก ํ์๋์ด ๋ํ๋๋ค.

plt.title("y = x^2 graph")
์ด ๋ช
๋ น์ ์ถ๊ฐํ๊ฒ ๋๋ฉด ๊ทธ๋ํ์ ์ ๋ชฉ์ด ์ถ๊ฐ๋์ด ๋ํ๋๋ค.
๋ ๋ฒ๋ก๋ ์ค์ ํ ์ ์๋๋ฐ
plt.plot(x, x**2, label="trand")
plot์์ label์ธ์์ ๋ฒ๋ก์ด๋ฆ์ ์ถ๊ฐํ๊ฒ ๋๋ฉด ๋ฒ๋ก๊ฐ ๊ทธ๋ํ์ ๋ํ๋๋ค.

๊บพ์์ ๊ทธ๋ํ๋ ์์์ ์์๋ดค์ผ๋ฏ๋ก ๋ค๋ฅธ case์ ๊ทธ๋ํ๋ฅผ ์์๋ณด๊ฒ ๋ค.
์ฐ์ ๋๋ ํ ๊ฐ์ง ๋ณ์์ ์๊ฐ์ ๋ณํ์ ๋ํด ํํํด์ผ ํ ๊ฐ์ด ๋ง์ ๊ฒฝ์ฐ, ๋๋ ๋ ๊ฐ์ง ๋ณ์์ ๊ด๊ณ๋ฅผ ๋ํ๋ด๋๋ฐ ์ ์ฉํ๋ค. ๋ ๊ฐ์ง ์ด์์ ๋ณ์๋ค์ ๋ํด์ ๋ชจ๋ธ๋ง์ ํ๋ ํ๊ท๋ถ์์ ์์ด์๋ ์ฒ์์ ๋ฐ์ดํฐ์ ํน์ฑ์ ๋ณด๋๋ฐ ์์ฃผ ์ ์ฉํ ๋ฐฉ๋ฒ์ด๋ค.
plt.scatter(x,y)
plt.show()
scatter plot๋ plt.plot๊ณผ ์ ์ฌํ๊ฒ plt.scatter๋ก ์์ x,y์ธ์๋ฅผ ๋ฃ๊ณ ์คํํ๋ค.

์์นํ ๋ฐ์ดํฐ์ ๋ํ ์ ๋ณด(Q1, Q2, Q3, min, max)๋ฅผ ๋ํ๋ธ๋ค.
plt.boxplot((x,y))
plt.title("Box plot of x, y")
plt.show()
#์๋๋ถํฐ ์ต์๊ฐ, ํ์ 25%, ์ค์๊ฐ, ์์ 25%, ์ต๋๊ฐ)

๋ฒ์ฃผํ ๋ฐ์ดํฐ์ ๊ฐ๊ณผ ๊ทธ ๊ฐ์ ํฌ๊ธฐ๋ฅผ ์ง์ฌ๊ฐํ์ผ๋ก ๋ํ๋ธ ๊ทธ๋ฆผ
plt.bar(x, y)
plt.xticks(np.arange(0, 20, 1))
plt.show()

์ด์ ์ ์ฌํ๊ฒ ํ์คํ ๊ทธ๋จ์ด๋ผ๋ ๊ฒ์ด ์๋๋ฐ ํ์คํ ๊ทธ๋จ์ ๊ณ๊ธ์ผ๋ก ๋ํ๋ด๋ ๊ฒ์ด ํน์ง์ด๋ค. ๋ฒ์ฃผํ ๋ฐ์ดํฐ๋ก ๊ตฌ์ฑ ํ ๊ทธ๋ฆผ์ ๊ทธ๋ฆฐ๋ค.
plt.hist(y, bins=np.arange(0,20,2))#bin : ๊ณ๊ธ์ ๊ตฌ์ฑํ ๋ฒ์๋ฅผ ์ง์ ํ๋ค.
plt.xticks(np.arange(0,20,2))
plt.show()

๋ฐ์ดํฐ ์ ์ฒด์ ๋ํ ๋ถ๋ถ์ ๋น์จ์ ๋ถ์ฑ๊ผด๋ก ๋ํ๋ธ๋ค. ๋น์จ ํ์ธ์ ์ฉ์ดํ๋ค.
z = [100,200,300,400]
plt.pie(z,labels=['one', 'two', 'three', 'four'])
plt.show()

Seaborn์ matplotlib๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ ๋ค์ํ ์๊ฐํ ๋ฐฉ๋ฒ์ ์ ๊ณตํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค.
๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ํฌํธ
import seaborn as sns
ํ์คํ ๊ทธ๋จ๊ณผ ๊ฐ์ ์ฐ์์ ์ธ ๋ถํฌ๋ฅผ ๊ณก์ ํํด์ ๊ทธ๋ฆฐ ๊ทธ๋ฆผ์ผ๋ก
sns.kdeplot()์ ์ฌ์ฉํด plottingํ๋ค.
์ด์ ์ plt.hist()๋ฅผ ์ฌ์ฉํด์ ๊ทธ๋ํ๋ฅผ ๊ทธ๋ฆฐ ์ ์ด ์๋๋ฐ ์์๋ณด๊ธฐ ์ฝ์ง ์์๋ค. sns.kdeplot()์ ๊ณก์ ํํด์ ๊ทธ๋ ค์ ์์๋ณด๊ธฐ ์ฝ๊ฒ๋๋ค.
sns.kdeplot(y,fill = True)#fill์ธ์ ๊ทธ๋ํ ์์ ์๋ ๋ถ๋ถ์ ์์น ์ ํ๋ ์ธ์
plt.show()

๋ฒ์ฃผํ column์ ๋น๋์๋ฅผ ์๊ฐํํ๋๋ฐ Groupbyํ์ ๋์๋ฅผ ํ๋ ๊ฒ๊ณผ ๋์ผํ ํจ๊ณผ๋ฅผ ๊ฐ์ง๋ค.
sns.countplot()๋ฅผ ์ด์ฉํด plottingํ๋ค.
๋จผ์ groupbyํ์ ๋์๋ฅผ ํ๋ ๊ฒ์ ๋ณด์ฌ์ค๋ค.
vote_df = pd.DataFrame({"name":['Andy', 'Bob', 'Cat'],"vote":[True, True, False]})
vote_count = vote_df.groupby('vote').count()
plt.bar(x=[False,True],height=vote_count['name'])
plt.show()
๋จผ์ ๋ฐ์ดํฐํ๋ ์ ํํ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ธํด์ค ํ groupby๋ฅผ ํตํด ๊ฐ value์ ๋ํ count๋ฅผ ํ๊ณ barplot๋ฅผ ์ฌ์ฉํ๋ค.

๋ค์์ countplot๋ฅผ ์ด์ฉํด ํ๋ฒ์ plotํด๋ณด์๋ค.
sns.countplot(x= vote_df['vote'])
plt.show()

์ด์ฒ๋ผ ๋ฒ์ฃผํ column์ ๋น๋์๋ฅผ ์๊ฐํ ํ ๋ countplot๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ๋จํ๊ฒ ์๊ฐํํ ์ ์๋ค.
์ซ์ํ๋ณ์์ ํ๋ ์ด์์ ๋ฒ์ฃผํ ๋ณ์์ ๊ด๊ณ๋ฅผ ๋ณด์ฌ์ฃผ๋ ํจ์์ด๋ค.
sns.cat.plot()๋ฅผ ์ด์ฉํ์ฌ plottingํ๋ค.
๋ฐ์ดํฐ๋ ์ ๋ฒ์ ์ฌ์ฉํ๋ covid๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๋ค.
s = sns.catplot(x='WHO Region',y='Confirmed',data=covid, kind='strip')#kind๋ strip์ด ๋ํดํธ
s.fig.set_size_inches(10,6)#plot์ฌ์ด์ฆ ์ค์
plt.show()

์ฌ๊ธฐ์๋ ์ซ์ํ ๋ณ์์ธ Confirmed์ ๋ฒ์ฃผํ๋ณ์์ธ WHO Region๊ณผ์ ๊ด๊ณ๋ฅผ ๋ํ๋ด์๋ค.
์ด์ ์ ์ฌํ๊ฒ swarmplot๋ผ๋ ๊ฒ์ด ์๋๋ฐ ์ด plot์ ๋ฐ์ดํฐ๊ฐ ๋ญ์ณ์์ด์ ํ์๊ฐ ์ ์๋ ๋ ๋ญ์ณ์๋ ๋ฐ์ดํฐ๋ฅผ ํฉ์ด๋์ ์ ๋ณผ ์ ์๊ฒ ํ๋ค.
sns.swarmplot(x="WHO Region", y='Recovered', data=covid)
plt.show()

๋ฐ์ดํฐ์ ํ๋ ฌ์ ์์์ผ๋ก ํํํด์ฃผ๋ ๊ทธ๋ํ์ด๋ค.
sns.heatmap()์ ์ด์ฉํ์ฌ plottingํ๋ค.
์ฌ๊ธฐ์๋ covid๋ฐ์ดํฐ์ ์ซ์ํ ๋ฐ์ดํฐ ๊ฐ์ ์๊ด๊ณ์๋ฅผ heatmap๋ก ๋ํ๋๋ค.
sns.heatmap(covid.corr(numeric_only=True))#์ฌ๊ธฐ์๋ numeric_only์ต์
์ ์์ ์์ ๋ covid๋ฐ์ดํฐ์ ๋ฌธ์์ด์ด ์์ด์ ์๋ฌ๊ฐ ๋ฌ๋ค.
plt.show()

๋~!