๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Language/Python

[Python]ํŒŒ์ด์ฌ ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”: ๊ทธ๋ž˜ํ”„ ์ข…๋ฅ˜์™€ ํ™œ์šฉ๋ฒ• ์•Œ์•„๋ณด๊ธฐ

by YJ Dev 2024. 5. 12.
728x90
๋ฐ˜์‘ํ˜•
SMALL


๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”๋Š” ๋ฐ์ดํ„ฐ ๋ถ„์„์˜ ํ•ต์‹ฌ ์š”์†Œ ์ค‘ ํ•˜๋‚˜๋กœ, ๋ฐ์ดํ„ฐ๋ฅผ ์ดํ•ดํ•˜๊ณ  ํšจ๊ณผ์ ์œผ๋กœ ์ „๋‹ฌํ•˜๋Š” ๋ฐ์— ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค. python์—์„œ๋Š” Mathplotlib ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋‹ค์–‘ํ•œ ๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆด ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ง๊ด€์ ์œผ๋กœ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŒŒ์ด์ฌ ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”


1. ๊บพ์€ ์„ ํ˜• ๊ทธ๋ž˜ํ”„๐Ÿ“ˆ (Plot)

๊บพ์€ ์„ ํ˜• ๊ทธ๋ž˜ํ”„๋Š” ๋ฐ์ดํ„ฐ์˜ ์ถ”์ด๋ฅผ ์‹œ๊ฐ์ ์œผ๋กœ ํŒŒ์•…ํ•˜๋Š” ๋ฐ์— ๋งŽ์ด ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค. python์—์„œ๋Š”Mathplotlib๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ์‹œ๊ฐํ™”ํ•˜๊ณ , ๊ทธ๋ž˜ํ”„๋ฅผ ๊พธ๋ฏธ๋Š” ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

โ–ถ๊บพ์€ ์„ ํ˜• ๊ทธ๋ž˜ํ”„ 1๊ฐœ ๋งŒ๋“ค๊ธฐ

import matplotlib.pyplot as plt

# Figure ๊ฐ์ฒด ์ƒ์„ฑ
figure = plt.figure() # ์ „์ฒด ์˜์—ญ(๋„ํ™”์ง€)

# Axes ๊ฐ์ฒด ์ƒ์„ฑ
axes = figure.add_subplot(111)  # ์ฐจํŠธ ์˜์—ญ # 1ํ–‰ 1์—ด 1๋ฒˆ์งธ

# ๋ฐ์ดํ„ฐ ์„ค์ •
x = [0, 1, 2, 3, 4]  # x์ถ• ๊ฐ’
y = [4, 1, 3, 5, 2]  # y์ถ• ๊ฐ’

# ๊บพ์€ ์„  ๊ทธ๋ž˜ํ”„ ๊ทธ๋ฆฌ๊ธฐ
axes.plot(x, y)

# ๊ทธ๋ž˜ํ”„ ์ถœ๋ ฅ
plt.show()


์œ„ ์ฝ”๋“œ๋ฅผ ์ด์šฉํ•˜์—ฌ ์•„๋ž˜์™€ ๊ฐ™์€ ๊ทธ๋ž˜ํ”„๋ฅผ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŒŒ์ด์ฌ ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” ๊บฝ์€์„  ๊ทธ๋ž˜ํ”„

โ–ถ๊บพ์€ ์„ ํ˜• ๊ทธ๋ž˜ํ”„ 2๊ฐœ ๋งŒ๋“ค๊ธฐ

import matplotlib.pyplot as plt

# Figure ๊ฐ์ฒด ์ƒ์„ฑ
figure = plt.figure() # ์ „์ฒด ์˜์—ญ(๋„ํ™”์ง€)

# Axes ๊ฐ์ฒด ์ƒ์„ฑ
axes = figure.add_subplot(111)  # ์ฐจํŠธ ์˜์—ญ # 1ํ–‰ 1์—ด 1๋ฒˆ์งธ

# ๋ฐ์ดํ„ฐ ์„ค์ •
x1 = [0, 1, 2, 3, 4]
y1 = [4, 1, 3, 5, 2]
x2 = [0, 1, 2, 3, 4]
y2 = [0, 8, 5, 3, 1]

# ๊บพ์€ ์„  ๊ทธ๋ž˜ํ”„ ๊ทธ๋ฆฌ๊ธฐ
axes.plot(x1, y1) # ์ฒซ ๋ฒˆ์งธ ๊ทธ๋ž˜ํ”„
axes.plot(x2, y2) # ๋‘ ๋ฒˆ์งธ ๊ทธ๋ž˜ํ”„

# ๊ทธ๋ž˜ํ”„ ์ถœ๋ ฅ
plt.show()


์ด๋ ‡๊ฒŒ ๋ฐ์ดํ„ฐ ์„ค์ •์„ ์ถ”๊ฐ€ํ•˜๋ฉด ๊ทธ๋ž˜ํ”„๋ฅผ ์ถ”๊ฐ€๋กœ ๋งŒ๋“ค ์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŒŒ์ด์ฌ ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” ๊บฝ์€์„  ๊ทธ๋ž˜ํ”„

โ–ถ๊บพ์€ ์„ ํ˜• ๊ทธ๋ž˜ํ”„ ๊พธ๋ฏธ๊ธฐ

import matplotlib.pyplot as plt

# Figure ๊ฐ์ฒด ์ƒ์„ฑ
figure = plt.figure() # ์ „์ฒด ์˜์—ญ(๋„ํ™”์ง€)

# Axes ๊ฐ์ฒด ์ƒ์„ฑ
axes = figure.add_subplot(111)  # ์ฐจํŠธ ์˜์—ญ # 1ํ–‰ 1์—ด 1๋ฒˆ์งธ

# ๋ฐ์ดํ„ฐ ์„ค์ • ๋ฐ ๊พธ๋ฏธ๊ธฐ
# ์ ์„ , ์„  ๊ตต๊ธฐ
axes.plot([0, 1, 2, 3, 4], [0, 3, 0, 3, 0], linestyle='dotted', linewidth=5.0)

# ์„  ์ƒ‰ ๋นจ๊ฐ•, ํ‘œ์‹ ์ถ”๊ฐ€
axes.plot([0, 1, 2, 3, 4], [1, 2, 3, 4, 5], color='r', marker='v')

# ๊ทธ๋ž˜ํ”„ ์ถœ๋ ฅ
plt.show()


์ด ์ฝ”๋“œ์—์„œ linestyle='dotted'์€ ์„ ์˜ ์Šคํƒ€์ผ์„ ์ ์„ ์œผ๋กœ ์ง€์ •ํ•˜๊ณ , linewidth=5.0์€ ์„ ์˜ ๊ตต๊ธฐ๋ฅผ 5.0์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ color='r'์€ ์„ ์˜ ์ƒ‰์ƒ์„ ๋นจ๊ฐ„์ƒ‰์œผ๋กœ ์ง€์ •ํ•˜๊ณ  (๋Œ€ํ‘œ ์ƒ‰์ƒ์€ ์ฒซ ๊ธ€์ž๋งŒ ํ‘œ์‹œ) marker='v'๋Š” ๋งˆ์ปค๋ฅผ ์‚ผ๊ฐํ˜•์œผ๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ์„ค์ •ํ•˜๊ณ  ๊พธ๋ฉฐ์ง„ ๊ทธ๋ž˜ํ”„๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŒŒ์ด์ฌ ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” ๊บฝ์€์„  ๊ทธ๋ž˜ํ”„


์ด๋ฒˆ์—๋Š” ์›”๋ณ„ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด์€ ๊บพ์€ ์„ ํ˜• ๊ทธ๋ž˜ํ”„๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

import matplotlib.pyplot as plt

# Figure ๊ฐ์ฒด ์ƒ์„ฑ
figure = plt.figure() # ์ „์ฒด ์˜์—ญ(๋„ํ™”์ง€)

# Axes ๊ฐ์ฒด ์ƒ์„ฑ
axes = figure.add_subplot(111)  # ์ฐจํŠธ ์˜์—ญ # 1ํ–‰ 1์—ด 1๋ฒˆ์งธ

# ๋ฐ์ดํ„ฐ ์„ค์ • ๋ฐ ๊พธ๋ฏธ๊ธฐ
# ์„  ์Šคํƒ€์ผ์„ ์ ์„ ์œผ๋กœ, ๋งˆ์ปค๋ฅผ ์‚ผ๊ฐํ˜•์œผ๋กœ ์ง€์ •ํ•˜์—ฌ ๊บพ์€ ์„ ํ˜• ๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฝ๋‹ˆ๋‹ค.
x = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun']
y = [1200, 800, 500, 400, 700, 800]
axes.plot(x, y, linestyle='--', marker='^')

# ๊ทธ๋ž˜ํ”„ ์ถœ๋ ฅ
plt.show()


์ด ์ฝ”๋“œ์—์„œ linestyle='--'์€ ์„ ์˜ ์Šคํƒ€์ผ์„ ์ ์„ ์œผ๋กœ, marker='^'๋Š” ๋งˆ์ปค๋ฅผ ์‚ผ๊ฐํ˜•์œผ๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ๊ฒฐ๊ณผ, ์›”๋ณ„ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ๊บพ์€ ์„ ํ˜• ๊ทธ๋ž˜ํ”„๊ฐ€ ๊ทธ๋ ค์ง‘๋‹ˆ๋‹ค.

ํŒŒ์ด์ฌ ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” ๊บฝ์€์„  ๊ทธ๋ž˜ํ”„


2. ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ (Bar)๐Ÿ“Š

๋ฒ”์ฃผํ˜• ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™”ํ•  ๋•Œ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋Š” ๋งค์šฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. Mathplotlib๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฌ๊ณ , ๊ทธ์— ํ•„์š”ํ•œ ์ œ๋ชฉ๊ณผ ์ถ• ๋ ˆ์ด๋ธ”์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

import matplotlib.pyplot as plt

# Figure ๊ฐ์ฒด ์ƒ์„ฑ
figure = plt.figure() # ์ „์ฒด ์˜์—ญ(๋„ํ™”์ง€)

# Axes ๊ฐ์ฒด ์ƒ์„ฑ
axes = figure.add_subplot(111)  # ์ฐจํŠธ ์˜์—ญ # 1ํ–‰ 1์—ด 1๋ฒˆ์งธ

# ๋ฐ์ดํ„ฐ ์„ค์ • ๋ฐ ๊ทธ๋ž˜ํ”„ ๊ทธ๋ฆฌ๊ธฐ
x = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
y = [8, 6, 5, 4, 7, 9, 5]
axes.bar(x, y)

# ๊ทธ๋ž˜ํ”„ ํƒ€์ดํ‹€, x์ถ• ์ œ๋ชฉ, y์ถ• ์ œ๋ชฉ ์„ค์ •
plt.title('weekday call') # ์ฐจํŠธ ์ œ๋ชฉ
plt.xlabel('week')        # x์ถ• ์ œ๋ชฉ
plt.ylabel('call')        # y์ถ• ์ œ๋ชฉ

# ๊ทธ๋ž˜ํ”„ ์ถœ๋ ฅ
plt.show()


์œ„ ์ฝ”๋“œ์—์„œ plt.title(weekday call), plt.xlabel(week), plt.ylabel(call)์€ ๊ฐ๊ฐ ์ฐจํŠธ์˜ ์ œ๋ชฉ, x์ถ• ์ œ๋ชฉ, y์ถ• ์ œ๋ชฉ์„ ์„ค์ •ํ•˜๋Š” ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ฃผ๊ฐ„ ํ†ตํ™”๋Ÿ‰์— ๋Œ€ํ•œ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฝ๋‹ˆ๋‹ค.

ํŒŒ์ด์ฌ ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„


์œ„์—์„œ ํ™•์ธํ•ด ๋ณธ ๊บพ์€ ์„  ๊ทธ๋ž˜ํ”„์™€ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋ฅผ ํ•จ๊ป˜ ๊ทธ๋ฆฌ๋Š” ์˜ˆ์ œ๋ฅผ ๋งŒ๋“ค์–ด ๋ด…์‹œ๋‹ค. ๋žœ๋ค ํ•œ y๊ฐ’์„ ์ƒ์„ฑํ•˜์—ฌ ๊ฐ๊ฐ์˜ ๊ทธ๋ž˜ํ”„์— ๋Œ€์‘ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜ํ”„ ์ถœ๋ ฅ ํ›„์—๋Š” ๊ทธ๋ž˜ํ”„๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

import random
import matplotlib.pyplot as plt

# Figure ๊ฐ์ฒด ์ƒ์„ฑ
figure = plt.figure(figsize=(20, 6)) # ์ „์ฒด ์˜์—ญ(๋„ํ™”์ง€)

# Axes ๊ฐ์ฒด ์ƒ์„ฑ
axes = figure.add_subplot(111)  # ์ฐจํŠธ ์˜์—ญ # 1ํ–‰ 1์—ด 1๋ฒˆ์งธ

# ๋ฐ์ดํ„ฐ ์„ค์ • ๋ฐ ๊ทธ๋ž˜ํ”„ ๊ทธ๋ฆฌ๊ธฐ
x = [n for n in range(101)] # 0๋ถ€ํ„ฐ 100๊นŒ์ง€์˜ ๊ฐ’ ๋ฆฌ์ŠคํŠธ ์ƒ์„ฑ
y1 = [] # ๊บพ์€ ์„ 
y2 = [] # ๋ง‰๋Œ€
for i in range(101):
    y1.append(random.randint(0, 100)) # 0๋ถ€ํ„ฐ 100๊นŒ์ง€์˜ ๋žœ๋คํ•œ ์ •์ˆ˜๋ฅผ y1 ๋ฆฌ์ŠคํŠธ์— ์ถ”๊ฐ€
    y2.append(random.randint(0, 100)) # 0๋ถ€ํ„ฐ 100๊นŒ์ง€์˜ ๋žœ๋คํ•œ ์ •์ˆ˜๋ฅผ y2 ๋ฆฌ์ŠคํŠธ์— ์ถ”๊ฐ€
axes.plot(x, y1, color='r', marker='.') # ๊บพ์€ ์„  ๊ทธ๋ž˜ํ”„ ๊ทธ๋ฆฌ๊ธฐ
axes.bar(x, y2, color='g') # ๋ง‰๋Œ€ ๊ทธ๋ž˜ํ”„ ๊ทธ๋ฆฌ๊ธฐ

# ๊ทธ๋ž˜ํ”„ ์ถœ๋ ฅ
plt.show()

ํŒŒ์ด์ฌ ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”


3. ์‚ฐํฌ ๊ทธ๋ž˜ํ”„ (Scatter)๐ŸŒง

๋‘ ๋ณ€์ˆ˜ ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ์‹œ๊ฐ์ ์œผ๋กœ ์ดํ•ดํ•˜๋Š” ๋ฐ์—๋Š” ์‚ฐํฌ ๊ทธ๋ž˜ํ”„๊ฐ€ ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค. Mathplotlib๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ์˜ ํŒจํ„ด์„ ์‚ดํŽด๋ณด๊ณ , ์ ์˜ ํฌ๊ธฐ์™€ ์ƒ‰์ƒ์„ ์กฐ์ ˆํ•˜์—ฌ ๋”์šฑ ๋ช…ํ™•ํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ํ™•์ธํ•ด ๋ด…์‹œ๋‹ค.

import matplotlib.pyplot as plt

# Figure ๊ฐ์ฒด ์ƒ์„ฑ
figure = plt.figure() # ์ „์ฒด ์˜์—ญ(๋„ํ™”์ง€)

# Axes ๊ฐ์ฒด ์ƒ์„ฑ
axes = figure.add_subplot(111)  # ์ฐจํŠธ ์˜์—ญ # 1ํ–‰ 1์—ด 1๋ฒˆ์งธ

# ๋ฐ์ดํ„ฐ ์„ค์ • ๋ฐ ๊ทธ๋ž˜ํ”„ ๊ทธ๋ฆฌ๊ธฐ
x = [1, 2, 3, 4, 5, 6]
y = [6, 4, 1, 2, 7, 5]
area = [50, 100, 150, 200, 250, 300] # ๊ฐ ์ ์˜ ํฌ๊ธฐ
color = ['red', 'green', 'blue', 'orange', 'aqua', 'crimson'] # ์ƒ‰์ƒ
axes.scatter(x, y, s=area, c=color)  # ์  ํฌ๊ธฐ์™€ ์ƒ‰์ƒ ์„ค์ •

# ๊ทธ๋ž˜ํ”„ ์ถœ๋ ฅ
plt.show()


scatter ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฐํฌ ๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ ธ์Šต๋‹ˆ๋‹ค. s=area๋Š” ๊ฐ ์ ์˜ ํฌ๊ธฐ๋ฅผ ์„ค์ •ํ•˜๊ณ , c=color๋Š” ๊ฐ ์ ์˜ ์ƒ‰์ƒ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ๊ฒฐ๊ณผ, ์ ์˜ ์ƒ‰์ƒ์ด ๋‹ค๋ฅธ ์‚ฐํฌ ๊ทธ๋ž˜ํ”„๊ฐ€ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.

ํŒŒ์ด์ฌ ์‚ฐํฌ ๊ทธ๋ž˜ํ”„


์†Œ์Œ์— ๋”ฐ๋ฅธ ์ŠคํŠธ๋ ˆ์Šค๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ทธ๋ž˜ํ”„๋ฅผ ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด ํ™•์ธํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

import matplotlib.pyplot as plt

# Figure ๊ฐ์ฒด ์ƒ์„ฑ
figure = plt.figure() # ์ „์ฒด ์˜์—ญ(๋„ํ™”์ง€)

# Axes ๊ฐ์ฒด ์ƒ์„ฑ
axes = figure.add_subplot(111)  # ์ฐจํŠธ ์˜์—ญ # 1ํ–‰ 1์—ด 1๋ฒˆ์งธ

# ๋ฐ์ดํ„ฐ ์„ค์ • ๋ฐ ๊ทธ๋ž˜ํ”„ ๊ทธ๋ฆฌ๊ธฐ
noise = [20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70]
stress = [10, 11, 15, 20, 30, 42, 55, 70, 88, 110, 150]
axes.scatter(noise, stress, s=50) # ๊ฐ ์ ์˜ ํฌ๊ธฐ๋ฅผ 50์œผ๋กœ ์„ค์ •

# x์ถ•๊ณผ y์ถ• ๋ผ๋ฒจ ์„ค์ •
plt.xlabel('Noise')  # x์ถ• ์ œ๋ชฉ
plt.ylabel('Stress') # y์ถ• ์ œ๋ชฉ

# ๊ทธ๋ž˜ํ”„ ์ถœ๋ ฅ
plt.show()


s=50์€ ๊ฐ ์ ์˜ ํฌ๊ธฐ๋ฅผ 50์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. x์ถ•๊ณผ y์ถ•์˜ ๋ผ๋ฒจ๋„ ๊ฐ๊ฐ 'Nosie'์™€ 'Stress'๋กœ ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ๊ฒฐ๊ณผ Nosie, Stress ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ์‹œ๊ฐํ™”ํ•œ ๊ทธ๋ž˜ํ”„๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

ํŒŒ์ด์ฌ scatter


4. ์›ํ˜• ๊ทธ๋ž˜ํ”„ (Pie)๐Ÿ•’

์›ํ˜• ๊ทธ๋ž˜ํ”„๋Š” ๋ฐ์ดํ„ฐ์˜ ์ƒ๋Œ€์ ์ธ ๋น„์œจ์„ ํ•œ๋ˆˆ์— ํŒŒ์•…ํ•˜๋Š” ๋ฐ์— ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. Mathplotlib๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์›ํ˜• ๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฌ๊ณ , ๋ฒ”๋ก€์™€ ๋ ˆ์ด๋ธ”์„ ์ถ”๊ฐ€ํ•˜์—ฌ ๊ทธ๋ž˜ํ”„๋ฅผ ๋”์šฑ ๋ช…ํ™•ํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ํ™•์ธํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

import matplotlib.pyplot as plt

# Figure ๊ฐ์ฒด ์ƒ์„ฑ
figure = plt.figure() # ์ „์ฒด ์˜์—ญ(๋„ํ™”์ง€)

# Axes ๊ฐ์ฒด ์ƒ์„ฑ
axes = figure.add_subplot(111)  # ์ฐจํŠธ ์˜์—ญ # 1ํ–‰ 1์—ด 1๋ฒˆ์งธ

# ๋ฐ์ดํ„ฐ ์„ค์ • ๋ฐ ๊ทธ๋ž˜ํ”„ ๊ทธ๋ฆฌ๊ธฐ
data = [1, 2, 3]
axes.pie(data)

# ๊ทธ๋ž˜ํ”„ ์ถœ๋ ฅ
plt.show()


pie ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์›ํ˜• ๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ ธ์Šต๋‹ˆ๋‹ค. data ๋ณ€์ˆ˜์—๋Š” ๊ทธ๋ž˜ํ”„์— ํ‘œ์‹œ๋  ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด๊ฐ€๋ฉฐ, ํ•ด๋‹น ๋ฐ์ดํ„ฐ์˜ ๋น„์œจ์— ๋”ฐ๋ผ ์›ํ˜• ๊ทธ๋ž˜ํ”„๊ฐ€ ๊ทธ๋ ค์ง‘๋‹ˆ๋‹ค. ๊ทธ๋ž˜ํ”„ ์ถœ๋ ฅ ํ›„์—๋Š” ๊ทธ๋ž˜ํ”„๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

ํŒŒ์ด์ฌ ์›ํ˜• ๊ทธ๋ž˜ํ”„ ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”

โ–ถ ์›ํ˜• ๊ทธ๋ž˜ํ”„์— ๋ฒ”๋ก€์™€ ๋ ˆ์ด๋ธ”์„ ์ถ”๊ฐ€ํ•˜๊ธฐ

import matplotlib.pyplot as plt

# Figure ๊ฐ์ฒด ์ƒ์„ฑ
figure = plt.figure() # ์ „์ฒด ์˜์—ญ(๋„ํ™”์ง€)

# Axes ๊ฐ์ฒด ์ƒ์„ฑ
axes = figure.add_subplot(111)  # ์ฐจํŠธ ์˜์—ญ # 1ํ–‰ 1์—ด 1๋ฒˆ์งธ

# ๋ฐ์ดํ„ฐ ์„ค์ • ๋ฐ ๊ทธ๋ž˜ํ”„ ๊ทธ๋ฆฌ๊ธฐ
data = [1, 2, 3]
label = ['Good', 'Bad', 'Normal']
axes.pie(data, labels=label, autopct='%d%%')  # ๋ ˆ์ด๋ธ” ํฌํ•จ, ์ •์ˆ˜%๋กœ ํ‘œ์‹œ

# ๋ฒ”๋ก€ ์ถ”๊ฐ€
plt.legend(label, loc='center left')  # ๋ฒ”๋ก€ ์œ„์น˜ ์„ค์ •

# ๊ทธ๋ž˜ํ”„ ์ถœ๋ ฅ
plt.show()


labels ์ธ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ ์„น์…˜์˜ ๋ ˆ์ด๋ธ”์„ ์„ค์ •ํ•˜๊ณ , autopct='%d%%'๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ ์„น์…˜์˜ ๋น„์œจ์„ ์ •์ˆ˜ ํ˜•์‹์œผ๋กœ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  plt.legend() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฒ”๋ก€๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ , loc=center left๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฒ”๋ก€ ์œ„์น˜๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜ํ”„ ์ถœ๋ ฅ ํ›„์—๋Š” ๊ทธ๋ž˜ํ”„๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

ํŒŒ์ด์ฌ ์›ํ˜• ๊ทธ๋ž˜ํ”„


์˜์–‘์ œ์— ๋“ค์–ด๊ฐ„ ๋น„ํƒ€๋ฏผ์˜ ํ•จ๋Ÿ‰์„ ์†Œ์ˆ˜์  ์•„๋ž˜ ์ฒซ ์งธ์ž๋ฆฌ๊นŒ์ง€ ํ‘œ์‹œํ•˜๋Š” ๊ทธ๋ž˜ํ”„ ์˜ˆ์ œ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

import matplotlib.pyplot as plt

# Figure ๊ฐ์ฒด ์ƒ์„ฑ
figure = plt.figure(figsize=(12, 12)) # ์ „์ฒด ์˜์—ญ(๋„ํ™”์ง€)

# Axes ๊ฐ์ฒด ์ƒ์„ฑ
axes = figure.add_subplot(111)  # ์ฐจํŠธ ์˜์—ญ # 1ํ–‰ 1์—ด 1๋ฒˆ์งธ

# ๋ฐ์ดํ„ฐ ์„ค์ • ๋ฐ ๊ทธ๋ž˜ํ”„ ๊ทธ๋ฆฌ๊ธฐ
vitamin = ['Vitamin A', 'Vitamin B1', 'Vitamin B2', 'Niacin', 'Vitamin B6', 'Vitamin C', 'Vitamin D', 'Vitamin E', 'Folate'] # ์ข…๋ฅ˜
data = [0.18, 0.3, 3.33, 3.75, 0.38, 25, 0.25, 2.75, 0.1] # ํ•จ๋Ÿ‰
axes.pie(data, labels=vitamin, autopct='%0.1f%%') # ์†Œ์ˆ˜์  ์•„๋ž˜ ์ฒซ ๋ฒˆ์งธ ์ž๋ฆฌ๊นŒ์ง€, ๋ฐฑ๋ถ„์œจ๋กœ ํ‘œ์‹œ

# ๊ทธ๋ž˜ํ”„ ์ถœ๋ ฅ
plt.show()



ํŒŒ์ด์ฌ ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” ์›ํ˜• ๊ทธ๋ž˜ํ”„


5. ํ•ต์‹ฌ ๋‚ด์šฉ๐Ÿ‘€

ํŒŒ์ด์ฌ ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”

728x90
๋ฐ˜์‘ํ˜•
LIST