import pandas as pd
import numpy as np
import matplotlib.pyplot as plt #๋ณ์นญ์ง์
import seaborn as sb
Matplotlib
ํ์ด์ฌ ์๊ฐํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
plot() : ๋ค์ด์ด๊ทธ๋จ์ ์ (๋ง์ปค)์ ๊ทธ๋ฆฌ๋๋ฐ ์ฌ์ฉํ๋ค
marker : ์ง์ ๋ ๋ง์ปค๋ก ๊ฐ ์ง์ ์ ๊ฐ์กฐํ ์ ์๋ค
linestyle : ํ๋กฏ๋ ์ ์ ์คํ์ผ์ ๋ณ๊ฒฝํ ์ ์๋ค
xlable(), ylable() : x์ถ๊ณผ y์ถ์ ๋ํ ๋ ์ด๋ธ์ ์ค์ ํ ์ ์๋ค
grid() : ํ๋กฏ์ ๊ทธ๋ฆฌ๋ ์ ์ ์ถ๊ฐํ ์ ์๋ค
subplot() : ์ฌ๋ฌ ๊ทธ๋ํ๋ฅผ ๊ทธ๋ฆด ์ ์๋ค
ex)
plt.subplot(1,2,2) #1์ค์ ๋์นธ์ ๋๋ฒ์งธ์ ๊ทธ๋ํ๋ฅผ ํ์ํ๋ค
ex)
grid( axis = 'y' ) #๊ทธ๋ฆฌ๋ ์ ์ถ๊ฐ ํ์ชฝ๋ง ํํํ ๋๋ axis=x or y
scatter() : ์ฐ์ ๋๋ฅผ ๊ทธ๋ฆด ์ ์๋ค
bar() : ๋ง๋ ๊ทธ๋ํ๋ฅผ ๊ทธ๋ฆด ์ ์๋ค
hist() : ํ์คํ ๊ทธ๋จ์ ์์ฑํ๋ค
pie() : ์ํ์ฐจํธ๋ฅผ ๋ง๋ ๋ค
-----------------------------------------------------------------------------------------
# ์ฒซ ์คํ์ ์
๋ ฅํ๋ฉด ํ๊ธ๋ก ์์ฑํด๋ ์ค๋ฅ๊ฐ ๋จ์ง ์๋๋ค
import platform
from matplotlib import font_manager, rc
plt.rcParams['axes.unicode_minus'] = False
if platform.system() == 'Darwin':
rc('font', family='AppleGothic')
elif platform.system() == 'Windows':
path = "c:/Windows/Fonts/malgun.ttf"
font_name = font_manager.FontProperties(fname=path).get_name()
rc('font', family=font_name)
else:
print('Unknown system... sorry~~~~')
-----------------------------------------------------------------------------------------
์ ์ฒด ํ์ดํ ํ์
plt.title()
์๋ธํ๋กฏ์ผ๋ก ์ฌ๋ฌ๊ฐ์ ๊ทธ๋ํ๋ฅผ ํ์ํ๋ค๋ฉด subtitle์ ์ค์ ํ ์๋ ์๋ค
plt.suptitle()
x,y์ถ์ ๋ํ ๋ ์ด๋ธ์ ํ์
xlabel(), ylabel() ํจ์๋ฅผ ์ฌ์ฉ
plt.xlabel('X-Label')
plt.ylabel('Y-Label')
plt.plot([1,2,3,4],[1,4,9,16], label='Test($)')
์ถ ๋ฒ์ ์ง์ ํ๊ธฐ
xlim() x์ถ์ด ํ์๋๋ ๋ฒ์๋ฅผ ์ง์ ํ๊ฑฐ๋ ๋ฆฌํด
ylim() y์ถ์ด ํ์๋๋ ๋ฒ์๋ฅผ ์ง์ ํ๊ฑฐ๋ ๋ฆฌํด
plt.xlim([0, 5]) #[xmin, xmax]
plt.ylim([0, 20]) #[ymin, ymax]
axis() x,y์ถ์ด ํ์๋๋ ๋ฒ์๋ฅผ ์ง์ ํ๊ฑฐ๋ ๋ฆฌํด
plt.axis([xmin, xmax, ymin, ymax])
๋ฒ๋ก ์คํํ๊ธฐ
plt.legend()
plt.legend(loc=' upper right ' )
plt.legend(loc=' upper left ' )
plt.legend(loc=' lower right ' )
plt.legend(loc=' lower left ' )
๊ทธ๋ํ ํฌ๊ธฐ ์ค์ ํ๊ธฐ
plt.figure(figsize=(๊ฐ๋ก๊ธธ์ด,์ธ๋ก๊ธธ์ด))
๋ผ๋ฒจ์ ์ฌ๋ฐฑ ์ง์ ํ๊ธฐ
margin : ๋ฐ๊นฅ ์ฌ๋ฐฑ
padding : ์์ชฝ ์ฌ๋ฐฑ
plt.xlabel('X-Label', labelpad=15, fontdict=font1, loc='right') #loc๋ location์ ์ฝ์์ด๋ค.
plt.ylabel('Y-Label', labelpad=20, fontdict=font2, loc='top')
color ์ค์ ํ๊ธฐ
'b' blue
'g' green
'r' red
'c' cyan (ํ๋์)
'm' magenta (์์ฃผ์)
'y' yellow
'k' black
'w' white
์ ์ข
๋ฅ (linestyle) ์ง์ ํ๊ธฐ
solid, dashed, dotted, dash-dot
plt.plot([1,2,3],[4,4,4],'-',color='C0', label='Solid')
plt.plot([1,2,3],[3,3,3],'--',color='C0', label='Dashed')
plt.plot([1,2,3],[2,2,2],':',color='C0', label='Dotted')
plt.plot([1,2,3],[1,1,1],'-.',color='C0', label='Dash-dot')
marker(๋ง์ปค) ํ์
'-' point
',' pixel
'o' circle
'v' triangle_down
'^' triangle_up
'<' triangle_left
'>' triangle_right
'1' tri_down
'2' tri_up
'3' tri_left
'4' tri_right
's' square
'p' pentagon
'*' start
'h' hexagon1
'H' hexagon2
'+' plus
'x' x
'D' diamond
'd' thin_diamond
'|' vline
'_' hline
ํน๋ณํ ์ค์ ์ด ์์ผ๋ฉด ๊ทธ๋ํ๊ฐ ์ค์ ์ผ๋ก ๊ทธ๋ ค์ง์ง๋ง ํ๊ธฐ๋ฅผ ์ํด์ ๋ง์ปค ํํ์ ๊ทธ๋ํ๋ฅผ ๊ทธ๋ฆด์ ์๋ค
ex)
plt.plot(x, y, 'bo')
plot()ํจ์์ 'bo'๋ฅผ ์ ๋ ฅ์์ผ์ฃผ๋ฉด ์ํ๋ง์ปค๋ก ๊ทธ๋ํ๊ฐ ํ์๋๋ค
b[lue]o[circle]์ ๋ํ๋ด๋ ๋ฌธ์์ด๋ค
bo- : ๋จ์์
bo-- : dashed line
plt.plot([1,2,3,4],[2,3,5,10],'bo-')
plt.plot([1,2,3,4],[6,7,8,12],'bo--')
์ถ ์ค์ผ์ผ ๋ณ๊ฒฝํ๊ธฐ
xscale(), yscale()ํจ์๋ฅผ ์ฌ์ฉํด์ ๊ทธ๋ํ์ ์ถ ์ค์ผ์ผ์ ๋ค์ํ๊ฒ ์ง์ ํ ์ ์๋ค
์ถ์ ๊ธฐ๋ณธ์ ์ผ๋ก linear(์ )์ค์ผ์ผ๋ก ํ์๋์ง๋ง log, symlog(symmetrical log scale), logit์ผ๋ก ๋ณ๊ฒฝํ ์ ์๋ค
๊ทธ๋ํ ์์ญ ์ฑ์ฐ๊ธฐ
.fill()
fill_between()
fill_betweenx()
plt.fill([1.9, 1.9, 3.1, 3.1],[1.0, 4.0, 6.0, 3.0], color='lightgrey', alpha = 0.5) # alpha๋ ํฌ๋ช ๋์ด๋ค
plt.fill_between(x[1:3], y[1:3], alpha = 0.5)
-------------------------------------------------------------------------------------------
๋ง์ด ์ฌ์ฉํ์ง๋ ์์ง๋ง ๊ทธ ์ธ์ ๊ทธ๋ํ ํํ๋ ์๋์ ๊ฐ์ ๊ฒ๋ค์ด ์๋ค.
#ํํธ๋งต : ๋ค์ํ ๊ฐ์ ๊ฐ๋ ์ซ์๋ฐ์ดํฐ๋ฅผ ์ด๋ถํฌ ํํ์ ๊ฐ์ด ์์์ ์ด์ฉํด์ ์๊ฐํ ํ ๊ฒ
plt.matshow()
arr = np.random.standard_normal((30,40))
#ํ์ค์ ๊ท๋ถํฌ๋ฅผ ๊ฐ์ง๋ 2์ฐจ์ ์ด๋ ์ด
cmap = plt.get_cmap('bwr')
plt.matshow(arr, cmap=cmap)
#์ต์
์ผ๋ก ์ปฌ๋ฌ๋ฐ๋ฅผ ๋ํ๋ผ์ ์๋ค shrinkํ๋ผ๋ฏธํฐ๋ก ์ปฌ๋ฌ๋ฐ์ ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ ํ ์ ์๋ค.
plt.colorbar(shrink=0.8, aspect=10)
plt.show()
#๋ฐ์ด์ฌ๋ฆฐ ํ๋กฏ( Violinplot ) ๊ทธ๋ฆฌ๊ธฐ : ๋ฐ์ดํฐ์ ๋ถํฌ์ ๋ฒ์๋ฅผ ํ๋์ ๋ณด๊ธฐ ์ฝ๊ฒ ๋ํ๋ด๋ ๊ทธ๋ํ ํ์
plt.style.use('default')
np.random.seed(0) #์ ํด์ง ์ซ์๊ฐ์ ๋ฐ๋ผ์ ๋ง์น ๋์์ฒ๋ผ ๋ณด์ด๋ ์์ด์ ์์ฑ
data_a = np.random.normal(0, 2.0, 1000)
data_b = np.random.normal(-3.0, 1.5, 500)
data_c = np.random.normal(1.2, 1.5, 1500)
fig, ax = plt.subplots()
violin = ax.violinplot([data_a, data_b, data_c], positions=[2,3,4]) #2,3,4์์น์ ๊ทธ๋ํ๊ฐ ๊ทธ๋ ค์ง
plt.show()
'Python > Matplotlib' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
scatter, histogram ๋ฑ์ ์ฐจํธ๋ฅผ ์คํธ๋ฆผ๋ฆฟ(streamlit)์ผ๋ก ํํํ๊ธฐ (0) | 2024.04.26 |
---|---|
Matplotlib) Scatter(์ค์บํฐ) ์ฐจํธ์ HeatMap(ํํธ๋งต) ๊ทธ๋ฆฌ๊ธฐ (0) | 2024.04.16 |
Matplotlib) Histograms(ํ์คํ ๊ทธ๋จ) ์ฐจํธ ๊ทธ๋ฆฌ๊ธฐ (0) | 2024.04.15 |
Matplotlib) Pie (ํ์ด) ์ฐจํธ ๊ทธ๋ฆฌ๊ธฐ (0) | 2024.04.15 |
Matplotlib) Bar chart : countplot ์ฐจํธ ๊ทธ๋ฆฌ๊ธฐ (0) | 2024.04.15 |