๐ŸํŒŒ์ด์ฌ ์ดˆ๋ณด์ž ๊ฐ€์ด๋“œ : ๊ทธ๋ž˜ํ”„ ๊ทธ๋ฆฌ๊ธฐ(Matplotlib)

 



์•ˆ๋…•ํ•˜์„ธ์š”! ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™”ํ•˜๋Š” ๊ฒƒ์€ ๋ถ„์„์˜ ์ฒซ๊ฑธ์Œ์ด์ž, ๊ฒฐ๊ณผ๋ฅผ ์ง๊ด€์ ์œผ๋กœ ์ดํ•ด์‹œํ‚ค๋Š” ๊ฐ€์žฅ ๊ฐ•๋ ฅํ•œ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ๋ณต์žกํ•œ ์ˆซ์ž๋“ค์„ ํ•œ๋ˆˆ์— ์™ ๋“ค์–ด์˜ค๋Š” ๊ทธ๋ฆผ์œผ๋กœ ๋ฐ”๊ฟ”์ฃผ๋Š” ๋งˆ๋ฒ•! ๋ฐ”๋กœ ๊ทธ๋ž˜ํ”„ ๊ทธ๋ฆฌ๊ธฐ์ž…๋‹ˆ๋‹ค. ✨

์ด ๊ธ€์—์„œ๋Š” ํŒŒ์ด์ฌ์˜ ๋Œ€ํ‘œ์ ์ธ ์‹œ๊ฐํ™” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ธ Matplotlib์„ ์‚ฌ์šฉํ•ด์„œ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๊ทธ๋ž˜ํ”„์ธ ์„  ๊ทธ๋ž˜ํ”„(Line Plot), ์‚ฐ์ ๋„(Scatter Plot), ๊ทธ๋ฆฌ๊ณ  **๋ง‰๋Œ€ ๊ทธ๋ž˜ํ”„(Bar Chart)**๋ฅผ ๊ทธ๋ฆฌ๋Š” ๋ฐฉ๋ฒ•์„ ์˜ˆ์ œ ์ค‘์‹ฌ์œผ๋กœ ์•„์ฃผ ์‰ฝ๊ฒŒ ์•Œ๋ ค๋“œ๋ฆด๊ฒŒ์š”. ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ดˆ๋ณด์ž๋ถ„๋“ค๋„ ๊ฑฑ์ • ๋งˆ์„ธ์š”! ์ฝ”๋“œ๋ฅผ ๋”ฐ๋ผ ์น˜๋Š” ๊ฒƒ๋งŒ์œผ๋กœ ๋ฉ‹์ง„ ๊ทธ๋ž˜ํ”„๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ต๋‹ˆ๋‹ค. ๐Ÿš€


1. Matplotlib, ์™œ ์จ์•ผ ํ• ๊นŒ์š”?

ํŒŒ์ด์ฌ์—๋Š” ์—ฌ๋Ÿฌ ์‹œ๊ฐํ™” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์žˆ์ง€๋งŒ, Matplotlib์€ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ด๋ฉด์„œ ๊ฐ€์žฅ ๊ฐ•๋ ฅํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค.

  • ๊ธฐ๋ณธ ์ค‘์˜ ๊ธฐ๋ณธ: ๊ฑฐ์˜ ๋ชจ๋“  ํŒŒ์ด์ฌ ๋ฐ์ดํ„ฐ ๋ถ„์„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(Pandas, NumPy ๋“ฑ)์™€ ์ž˜ ํ†ตํ•ฉ๋˜์–ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

  • ๋‹ค์–‘ํ•œ ๊ทธ๋ž˜ํ”„: ์„ , ๋ง‰๋Œ€, ์‚ฐ์ ๋„ ์™ธ์—๋„ 3D ๊ทธ๋ž˜ํ”„, ์ง€๋„ ๋“ฑ ์ˆ˜๋งŽ์€ ์ข…๋ฅ˜์˜ ๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆด ์ˆ˜ ์žˆ์–ด์š”.

  • ๋†’์€ ์ž์œ ๋„: ๊ทธ๋ž˜ํ”„์˜ ์ œ๋ชฉ, ์ถ• ์ด๋ฆ„, ์ƒ‰์ƒ, ์Šคํƒ€์ผ ๋“ฑ ๋ชจ๋“  ์š”์†Œ๋ฅผ ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š” ๋Œ€๋กœ ์„ธ๋ฐ€ํ•˜๊ฒŒ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ’ป ์‹œ์ž‘ํ•˜๊ธฐ: ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜ ๋ฐ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

์•„์ง Matplotlib์ด ์„ค์น˜๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค๋ฉด, ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ๋‚˜ ํ„ฐ๋ฏธ๋„์—์„œ ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ์„ค์น˜ํ•ด ์ฃผ์„ธ์š”. (๋Œ€๋ถ€๋ถ„์˜ ๋ฐ์ดํ„ฐ ๋ถ„์„ ํ™˜๊ฒฝ์—๋Š” ์ด๋ฏธ ์„ค์น˜๋˜์–ด ์žˆ์„ ๊ฑฐ์˜ˆ์š”!)

Bash
pip install matplotlib

์ด์ œ ํŒŒ์ด์ฌ ์ฝ”๋“œ์—์„œ Matplotlib์„ ์‚ฌ์šฉํ•  ์ค€๋น„๋ฅผ ํ•ฉ๋‹ˆ๋‹ค. ๊ด€๋ก€์ ์œผ๋กœ plt๋ผ๋Š” ๋ณ„๋ช…์œผ๋กœ ๋ถˆ๋Ÿฌ์˜ต๋‹ˆ๋‹ค.

Python
import matplotlib.pyplot as plt
import numpy as np # ์˜ˆ์ œ๋ฅผ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์‰ฝ๊ฒŒ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋„ ํ•จ๊ป˜ ๋ถˆ๋Ÿฌ์˜ต๋‹ˆ๋‹ค.

2. ๐Ÿ“ˆ ๊ฐ€์žฅ ๊ธฐ๋ณธ! ์„  ๊ทธ๋ž˜ํ”„(Line Plot) ๊ทธ๋ฆฌ๊ธฐ

์„  ๊ทธ๋ž˜ํ”„๋Š” ์‹œ๊ฐ„์˜ ํ๋ฆ„์ด๋‚˜ ์—ฐ์†์ ์ธ ๋ณ€ํ™”๋ฅผ ๋ณด์—ฌ์ค„ ๋•Œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ฃผ์‹ ๊ฐ€๊ฒฉ์˜ ๋ณ€ํ™”, ๊ธฐ์˜จ ๋ณ€ํ™” ๋“ฑ์„ ๋‚˜ํƒ€๋‚ผ ๋•Œ ์ข‹์ฃ .

๐Ÿ“ ์˜ˆ์ œ 1: ๋‹จ์ˆœํ•œ ์„  ๊ทธ๋ž˜ํ”„

๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ํ˜•ํƒœ๋กœ, $x$์ถ•๊ณผ $y$์ถ•์— ํ•ด๋‹นํ•˜๋Š” ๋ฐ์ดํ„ฐ๋งŒ ์žˆ์œผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

Python
# 1. ๋ฐ์ดํ„ฐ ์ค€๋น„
x = [1, 2, 3, 4, 5]
y = [10, 8, 6, 4, 2] # x๊ฐ€ ์ฆ๊ฐ€ํ• ์ˆ˜๋ก y๋Š” ๊ฐ์†Œํ•˜๋Š” ์ถ”์„ธ

# 2. ๊ทธ๋ž˜ํ”„ ๊ทธ๋ฆฌ๊ธฐ: plt.plot() ํ•จ์ˆ˜ ์‚ฌ์šฉ
plt.plot(x, y)

# 3. ๊ทธ๋ž˜ํ”„ ๋ณด์—ฌ์ฃผ๊ธฐ: plt.show() ํ•จ์ˆ˜ ์‚ฌ์šฉ
plt.show()

๐Ÿ“ ์˜ˆ์ œ 2: ์ œ๋ชฉ๊ณผ ์ถ• ์ด๋ฆ„ ์ถ”๊ฐ€ํ•˜๊ธฐ (๊ทธ๋ž˜ํ”„ ๊พธ๋ฏธ๊ธฐ)

๊ทธ๋ž˜ํ”„๋Š” ๋ณด๊ธฐ ์ข‹์•„์•ผ ํ•  ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ๋ฌด์—‡์„ ๋‚˜ํƒ€๋‚ด๋Š”์ง€ ๋ช…ํ™•ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ œ๋ชฉ๊ณผ ์ถ• ์ด๋ฆ„์„ ์ถ”๊ฐ€ํ•ด ๋ด…์‹œ๋‹ค.

Python
# 1. ๋ฐ์ดํ„ฐ ์ค€๋น„ (์œ„์™€ ๋™์ผ)
x = [1, 2, 3, 4, 5]
y = [10, 8, 6, 4, 2]

# 2. ๊ทธ๋ž˜ํ”„ ๊ทธ๋ฆฌ๊ธฐ
plt.plot(x, y, color='red', marker='o', linestyle='--') # ์ƒ‰์ƒ, ๋งˆ์ปค, ์„  ์Šคํƒ€์ผ ์ง€์ •

# 3. ๊พธ๋ฏธ๊ธฐ: ์ œ๋ชฉ, ์ถ• ์ด๋ฆ„ ์„ค์ •
plt.title("์‹œ๊ฐ„์— ๋”ฐ๋ฅธ ๋ฐ์ดํ„ฐ ๋ณ€ํ™”") # ๊ทธ๋ž˜ํ”„ ์ „์ฒด ์ œ๋ชฉ
plt.xlabel("์‹œ๊ฐ„ (๋‹จ์œ„: ์ฃผ์ฐจ)")       # x์ถ• ์ด๋ฆ„
plt.ylabel("๊ฐ’ (๋‹จ์œ„: ์ ์ˆ˜)")        # y์ถ• ์ด๋ฆ„

# 4. ๊ทธ๋ž˜ํ”„ ๋ณด์—ฌ์ฃผ๊ธฐ
plt.show()

์œ„ ์ฝ”๋“œ์—์„œ color, marker, linestyle๊ณผ ๊ฐ™์€ ์ธ์ˆ˜๋ฅผ ํ†ตํ•ด ๊ทธ๋ž˜ํ”„์˜ ์™ธํ˜•์„ ์‰ฝ๊ฒŒ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


3. ✨ ๊ด€๊ณ„๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ์‚ฐ์ ๋„(Scatter Plot)

**์‚ฐ์ ๋„(Scatter Plot)**๋Š” ๋‘ ๋ณ€์ˆ˜ ์‚ฌ์ด์˜ ๊ด€๊ณ„๋‚˜ ๋ถ„ํฌ๋ฅผ ์ ์œผ๋กœ ์ฐ์–ด ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋–ป๊ฒŒ ํผ์ ธ ์žˆ๋Š”์ง€, ํŠน์ •ํ•œ ๊ตฐ์ง‘์ด ์žˆ๋Š”์ง€ ๋“ฑ์„ ํŒŒ์•…ํ•  ๋•Œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“ ์˜ˆ์ œ 3: ํ‚ค์™€ ๋ชธ๋ฌด๊ฒŒ์˜ ๊ด€๊ณ„

ํ‚ค๊ฐ€ ํด์ˆ˜๋ก ๋ชธ๋ฌด๊ฒŒ๋„ ๋งŽ์ด ๋‚˜๊ฐ€๋Š” ๊ฒฝํ–ฅ์ด ์žˆ๋Š”์ง€ ์‚ดํŽด๋ด…์‹œ๋‹ค.

Python
# 1. ๋ฐ์ดํ„ฐ ์ค€๋น„ (๊ฐ€์ƒ์˜ ํ‚ค/๋ชธ๋ฌด๊ฒŒ ๋ฐ์ดํ„ฐ)
height = np.random.normal(loc=170, scale=10, size=50) # ํ‰๊ท  170, ํ‘œ์ค€ํŽธ์ฐจ 10์ธ 50๊ฐœ ๋‚œ์ˆ˜
weight = (height - 100) * 0.9 + np.random.normal(loc=0, scale=5, size=50) # ํ‚ค์— ๋น„๋ก€ํ•˜๊ณ  ์•ฝ๊ฐ„์˜ ๋ฌด์ž‘์œ„์„ฑ ์ถ”๊ฐ€

# 2. ๊ทธ๋ž˜ํ”„ ๊ทธ๋ฆฌ๊ธฐ: plt.scatter() ํ•จ์ˆ˜ ์‚ฌ์šฉ
plt.scatter(height, weight, alpha=0.6, s=50, c=weight, cmap='viridis')
# alpha: ํˆฌ๋ช…๋„, s: ์ ์˜ ํฌ๊ธฐ, c: ์ƒ‰์ƒ ์ง€์ •, cmap: ์ƒ‰์ƒ ์ง€๋„

# 3. ๊พธ๋ฏธ๊ธฐ
plt.title("ํ‚ค์™€ ๋ชธ๋ฌด๊ฒŒ ์‚ฐ์ ๋„")
plt.xlabel("ํ‚ค (cm)")
plt.ylabel("๋ชธ๋ฌด๊ฒŒ (kg)")
plt.grid(True) # ๋ˆˆ๊ธˆ์„  ์ถ”๊ฐ€

# 4. ๊ทธ๋ž˜ํ”„ ๋ณด์—ฌ์ฃผ๊ธฐ
plt.show()

์‚ฐ์ ๋„๋ฅผ ํ†ตํ•ด ํ‚ค์™€ ๋ชธ๋ฌด๊ฒŒ๋Š” ๋Œ€์ฒด๋กœ ์–‘์˜ ์ƒ๊ด€๊ด€๊ณ„๋ฅผ ๊ฐ€์ง„๋‹ค๋Š” ๊ฒƒ์„ ์‹œ๊ฐ์ ์œผ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


4. ๐Ÿ“Š ํ•ญ๋ชฉ๋ณ„ ํฌ๊ธฐ๋ฅผ ๋น„๊ตํ•˜๋Š” ๋ง‰๋Œ€ ๊ทธ๋ž˜ํ”„(Bar Chart)

**๋ง‰๋Œ€ ๊ทธ๋ž˜ํ”„(Bar Chart)**๋Š” ๋ฒ”์ฃผํ˜• ๋ฐ์ดํ„ฐ์˜ ์ˆ˜๋Ÿ‰์ด๋‚˜ ๋นˆ๋„๋ฅผ ๋น„๊ตํ•  ๋•Œ ๊ฐ€์žฅ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ œํ’ˆ๋ณ„ ํŒ๋งค๋Ÿ‰, ํ•™๋…„๋ณ„ ํ•™์ƒ ์ˆ˜ ๋“ฑ์„ ๋น„๊ตํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

๐Ÿ“ ์˜ˆ์ œ 4: ๋ถ„๊ธฐ๋ณ„ ํŒ๋งค๋Ÿ‰ ๋น„๊ต

4๊ฐœ์˜ ๋ถ„๊ธฐ๋ณ„ ํŒ๋งค๋Ÿ‰์„ ๋ง‰๋Œ€๋กœ ๋น„๊ตํ•ด ๋ด…์‹œ๋‹ค.

Python
# 1. ๋ฐ์ดํ„ฐ ์ค€๋น„
quarters = ['1๋ถ„๊ธฐ', '2๋ถ„๊ธฐ', '3๋ถ„๊ธฐ', '4๋ถ„๊ธฐ'] # ๋ฒ”์ฃผํ˜• ๋ฐ์ดํ„ฐ (x์ถ•)
sales = [1500, 2200, 1800, 2500]             # ์ˆ˜๋Ÿ‰ ๋ฐ์ดํ„ฐ (y์ถ•)

# 2. ๊ทธ๋ž˜ํ”„ ๊ทธ๋ฆฌ๊ธฐ: plt.bar() ํ•จ์ˆ˜ ์‚ฌ์šฉ
plt.bar(quarters, sales, color=['blue', 'green', 'red', 'purple'])

# 3. ๊พธ๋ฏธ๊ธฐ
plt.title("๋ถ„๊ธฐ๋ณ„ ํŒ๋งค ์‹ค์ ")
plt.xlabel("๋ถ„๊ธฐ")
plt.ylabel("ํŒ๋งค๋Ÿ‰ (๋‹จ์œ„: ๋งŒ ์›)")
plt.ylim(0, 3000) # y์ถ• ๋ฒ”์œ„ ์„ค์ •์œผ๋กœ ๋น„๊ตํ•˜๊ธฐ ์‰ฝ๊ฒŒ ํ•จ

# 4. ๊ทธ๋ž˜ํ”„ ๋ณด์—ฌ์ฃผ๊ธฐ
plt.show()

๐Ÿค“ ๋ง‰๋Œ€ ๊ทธ๋ž˜ํ”„์˜ ํ•ต์‹ฌ: $x$์ถ•์€ ๋ฒ”์ฃผ, $y$์ถ•์€ ์ˆ˜๋Ÿ‰!

Matplotlib์˜ plt.bar() ํ•จ์ˆ˜๋Š” ์ฒซ ๋ฒˆ์งธ ์ธ์ˆ˜๋กœ **๋ง‰๋Œ€์˜ ์ด๋ฆ„(๋ฒ”์ฃผ)**์„, ๋‘ ๋ฒˆ์งธ ์ธ์ˆ˜๋กœ **๋ง‰๋Œ€์˜ ๊ธธ์ด(์ˆ˜๋Ÿ‰)**๋ฅผ ๋ฐ›์Šต๋‹ˆ๋‹ค. ์ด ๊ตฌ์กฐ๋งŒ ์ดํ•ดํ•˜๋ฉด ๋ง‰๋Œ€ ๊ทธ๋ž˜ํ”„๋Š” ์‰ฝ๊ฒŒ ๊ทธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


5. ๐Ÿ’ก ๊ณ ๊ธ‰ ํŒ: ์—ฌ๋Ÿฌ ๊ทธ๋ž˜ํ”„๋ฅผ ํ•œ ๋ฒˆ์— ๊ทธ๋ฆฌ๊ธฐ (Subplots)

๋•Œ๋กœ๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ทธ๋ž˜ํ”„๋ฅผ ๋‚˜๋ž€ํžˆ ๋†“๊ณ  ๋น„๊ตํ•˜๊ณ  ์‹ถ์„ ๋•Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. Matplotlib์˜ Subplots ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ฉด ํ•˜๋‚˜์˜ ์ฐฝ ์•ˆ์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ž‘์€ ๊ทธ๋ž˜ํ”„(Axes)๋ฅผ ๋ฐฐ์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Python
# 1. ๋ฐ์ดํ„ฐ ์ค€๋น„
x = np.arange(0, 10, 0.1)
y1 = np.sin(x) # ์‚ฌ์ธ ๊ณก์„ 
y2 = np.cos(x) # ์ฝ”์‚ฌ์ธ ๊ณก์„ 

# 2. Subplots ์ƒ์„ฑ: (1ํ–‰ 2์—ด)๋กœ ๋ฐฐ์น˜
fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(10, 4))
# fig: ์ „์ฒด ๊ทธ๋ฆผ (figure), axes: ๊ฐœ๋ณ„ ๊ทธ๋ž˜ํ”„๋“ค์˜ ๋ฆฌ์ŠคํŠธ (axes)

# 3. ์ฒซ ๋ฒˆ์งธ ๊ทธ๋ž˜ํ”„ (์„  ๊ทธ๋ž˜ํ”„)
axes[0].plot(x, y1, label='Sin(x)', color='blue')
axes[0].set_title('์‚ฌ์ธ ๊ณก์„ ')
axes[0].legend()

# 4. ๋‘ ๋ฒˆ์งธ ๊ทธ๋ž˜ํ”„ (์‚ฐ์ ๋„)
axes[1].scatter(x, y2, label='Cos(x)', color='red', s=10)
axes[1].set_title('์ฝ”์‚ฌ์ธ ์‚ฐ์ ๋„')
axes[1].legend()

# 5. ์ „์ฒด ์ œ๋ชฉ ๋ฐ ๋ ˆ์ด์•„์›ƒ ์กฐ์ •
fig.suptitle('๋‘ ๊ฐ€์ง€ ํ•จ์ˆ˜ ๋น„๊ต ์‹œ๊ฐํ™”', fontsize=16)
plt.tight_layout(rect=[0, 0.03, 1, 0.95]) # ๊ทธ๋ž˜ํ”„๋“ค์ด ๊ฒน์น˜์ง€ ์•Š๋„๋ก ์กฐ์ •
plt.show()

plt.subplots(nrows=1, ncols=2)๋Š” 1์ค„์— 2๊ฐœ์˜ ๊ทธ๋ž˜ํ”„๋ฅผ ๋ฐฐ์น˜ํ•˜๋ผ๋Š” ๋ช…๋ น์ž…๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด **axes[0]**์€ ์ฒซ ๋ฒˆ์งธ ๊ทธ๋ž˜ํ”„๋ฅผ, **axes[1]**์€ ๋‘ ๋ฒˆ์งธ ๊ทธ๋ž˜ํ”„๋ฅผ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์„ ์ค๋‹ˆ๋‹ค.


๋งบ์Œ๋ง: ์ด์ œ ์‹œ๊ฐํ™” ์ „๋ฌธ๊ฐ€! ๐Ÿฅณ

์–ด๋– ์…จ๋‚˜์š”? ๋ณต์žกํ•˜๊ฒŒ๋งŒ ๋ณด์˜€๋˜ ํŒŒ์ด์ฌ ๊ทธ๋ž˜ํ”„ ๊ทธ๋ฆฌ๊ธฐ๊ฐ€ ์ƒ๊ฐ๋ณด๋‹ค ๊ฐ„๋‹จํ•˜์ง€ ์•Š์œผ์‹ ๊ฐ€์š”? ์˜ค๋Š˜์€ ๊ฐ€์žฅ ๊ธฐ์ดˆ์ ์ธ ์„ธ ๊ฐ€์ง€ ๊ทธ๋ž˜ํ”„๋ฅผ ๋ฐฐ์›Œ๋ดค์Šต๋‹ˆ๋‹ค.

  • ๋ณ€ํ™” ์ถ”์ด๋Š” $\rightarrow$ plt.plot() (์„  ๊ทธ๋ž˜ํ”„)

  • ๊ด€๊ณ„/๋ถ„ํฌ๋Š” $\rightarrow$ plt.scatter() (์‚ฐ์ ๋„)

  • ํ•ญ๋ชฉ๋ณ„ ๋น„๊ต๋Š” $\rightarrow$ plt.bar() (๋ง‰๋Œ€ ๊ทธ๋ž˜ํ”„)

์ด ์„ธ ๊ฐ€์ง€๋งŒ ์ž˜ ํ™œ์šฉํ•ด๋„ ์—ฌ๋Ÿฌ๋ถ„์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ›จ์”ฌ ์„ค๋“๋ ฅ ์žˆ๊ฒŒ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์„ ๊ฑฐ์˜ˆ์š”! ๋‹ค์Œ ๋‹จ๊ณ„์—์„œ๋Š” Pandas์™€ ์—ฐ๋™ํ•˜์—ฌ ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€ ์‹œ๊ฐํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์—ฐ์Šตํ•ด ๋ณด์„ธ์š”. ์—ฌ๋Ÿฌ๋ถ„์˜ ๋ฐ์ดํ„ฐ ๋ถ„์„ ์—ฌ์ •์„ ์‘์›ํ•ฉ๋‹ˆ๋‹ค! ๊ถ๊ธˆํ•œ ์ ์ด ์žˆ๋‹ค๋ฉด ์–ธ์ œ๋“  ๋ฌผ์–ด๋ด ์ฃผ์„ธ์š”! ๐Ÿ‘


๐Ÿ“š ์ฃผ์š” Matplotlib ํ•จ์ˆ˜ ์ •๋ฆฌํ‘œ

ํ•จ์ˆ˜๋ชฉ์ ์ฃผ์š” ์‚ฌ์šฉ ์˜ˆ์‹œ
plt.plot(x, y)์„  ๊ทธ๋ž˜ํ”„ (์—ฐ์†์ ์ธ ๋ฐ์ดํ„ฐ ๋ณ€ํ™”)์ฃผ๊ฐ€ ๋ณ€๋™, ๊ธฐ์˜จ ๋ณ€ํ™”
plt.scatter(x, y)์‚ฐ์ ๋„ (๋‘ ๋ณ€์ˆ˜ ๊ฐ„ ๊ด€๊ณ„/๋ถ„ํฌ)ํ‚ค์™€ ๋ชธ๋ฌด๊ฒŒ์˜ ์ƒ๊ด€๊ด€๊ณ„
plt.bar(x, height)๋ง‰๋Œ€ ๊ทธ๋ž˜ํ”„ (๋ฒ”์ฃผ๋ณ„ ์ˆ˜๋Ÿ‰ ๋น„๊ต)๋ถ„๊ธฐ๋ณ„ ํŒ๋งค๋Ÿ‰, ํˆฌํ‘œ ๊ฒฐ๊ณผ
plt.title()๊ทธ๋ž˜ํ”„ ์ „์ฒด ์ œ๋ชฉ ์„ค์ •
plt.xlabel()x์ถ• ์ด๋ฆ„ ์„ค์ •
plt.ylabel()y์ถ• ์ด๋ฆ„ ์„ค์ •
plt.show()๊ทธ๋ฆฐ ๊ทธ๋ž˜ํ”„ ํ™”๋ฉด์— ํ‘œ์‹œ(ํ•„์ˆ˜!)
plt.subplots()์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ทธ๋ž˜ํ”„๋ฅผ ํ•œ ๊ทธ๋ฆผ์— ๋ฐฐ์น˜

์ด์ œ ์ง์ ‘ ๋ฐ์ดํ„ฐ๋ฅผ ์ค€๋น„ํ•ด์„œ ๋‚˜๋งŒ์˜ ๋ฉ‹์ง„ ๊ทธ๋ž˜ํ”„๋ฅผ ๋งŒ๋“ค์–ด ๋ณด์„ธ์š”! ๐ŸŽจ

์ด ๊ธ€์—์„œ ๋‹ค๋ฃฌ ์˜ˆ์ œ ์™ธ์— ๋‹ค๋ฅธ ์ข…๋ฅ˜์˜ ๊ทธ๋ž˜ํ”„ (์˜ˆ: ํžˆ์Šคํ† ๊ทธ๋žจ, ํŒŒ์ด ์ฐจํŠธ)๋ฅผ ๊ทธ๋ฆฌ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๋” ์•Œ์•„๋ณด๊ณ  ์‹ถ์œผ์‹ ๊ฐ€์š”?

๋Œ“๊ธ€