Matplotlib

์ฃผํ™๋•…ยท2025๋…„ 7์›” 15์ผ

๋ฐ์ดํ„ฐ ๋ถ„์„

๋ชฉ๋ก ๋ณด๊ธฐ
3/5
post-thumbnail

๐Ÿ“Œ Matplotlib
: Matplotlib์€ ํŒŒ์ด์ฌ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™”ํ•˜๋Š” ๋ฐ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค. ๋‹ค์–‘ํ•œ ๊ทธ๋ž˜ํ”„์™€ ์ฐจํŠธ๋ฅผ ๊ทธ๋ฆด ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์„  ๊ทธ๋ž˜ํ”„, ๋ง‰๋Œ€ ๊ทธ๋ž˜ํ”„, ํžˆ์Šคํ† ๊ทธ๋žจ, ์‚ฐ์ ๋„ ๋“ฑ ๊ธฐ๋ณธ์ ์ธ ๊ทธ๋ž˜ํ”„๋ถ€ํ„ฐ ๋ณต์žกํ•œ 3D ํ”Œ๋กฏ๊นŒ์ง€ ์ง€์›ํ•จ. ๋„˜ํŒŒ์ด์™€ ํŒ๋‹ค์Šค์™€ ๊ฐ™์€ ๋ฐ์ดํ„ฐ ๋ถ„์„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ์ž˜ ํ†ตํ•ฉ๋˜์–ด ๋ฐ์ดํ„ฐ ๊ณผํ•™, ๋จธ์‹ ๋Ÿฌ๋‹, ํ†ต๊ณ„ ๋“ฑ ๋‹ค์–‘ํ•œ ๋ถ„์•ผ์—์„œ ํ™œ์šฉ๋œ๋‹ค.


๐Ÿ“Œ ๊ธฐ๋ณธ ๊ตฌ์กฐ

  • Figure : ์ „์ฒด ๊ทธ๋ฆผ (๋„ํ™”์ง€)
  • Axes : ํ•˜๋‚˜์˜ ์„œ๋ธŒ ๊ทธ๋ž˜ํ”„ (๋ณดํ†ต x์ถ•, y์ถ• ํฌํ•จ)
  • Axis : x์ถ•๊ณผ y์ถ• ์ž์ฒด
pip install matplotlib
import matplotlib.pylot as plt

plt.plot([1, 2, 3, 4]) # ๋ฆฌ์ŠคํŠธ์˜ ๊ฐ’๋“ค์€ y๊ฐ’๋“ค์ด๋ฉฐ, x๊ฐ’์€ ์ž๋™์œผ๋กœ ๋งŒ๋“ค์–ด์ง
plt.show()


plt.plot([1, 2, 3, 4], [1, 2, 3, 4])
plt.show()


import numpy as np
data = np.arange(1,100)
plt.plot(data)
plt.show()


data1 = np.arange(1, 50)
plt.plot(data1)
data2 = np.arange(50, 100)
plt.plot(data2)
plt.show()


๐Ÿ“Œ ์Šคํƒ€์ผ ์˜ต์…˜

# ํ•œ๊ธ€ fonts-nanum ์„ค์น˜
sudo apt-get install -y fonts-nanum
sudo fc-cache -fv
rm ~/.cache/matplotlib -rf
plt.rc('font', family='NanumBarunGothic')

plt.figure(figsize=(4, 5)) # ๋‹จ์œ„๋Š” inch
plt.plot([1, 2, 3], [1, 2, 3])
plt.title('์ œ๋ชฉ', fontsize=30)
plt.xlabel('X์ถ•', fontsize=20)
plt.ylabel('Y์ถ•', fontsize=20, rotation=0)
plt.show()

plt.figure(figsize=(15, 10))
plt.title('๋งˆ์ปค์„ค์ •', fontsize=30)
plt.plot(np.arange(10), np.arange(10), color='deepskyblue', marker='o', linestyle='-.')
plt.plot(np.arange(10), np.arange(10)*2, color='deeppink', marker='v', linestyle='--')
plt.plot(np.arange(10), np.arange(10)*3, color='gold', marker='*', ms=10, linestyle='')
# ms : ์ ์˜ ํฌ๊ธฐ

# ๋ฒ”๋ก€
# ๊ธฐ๋ณธ ์œ„์น˜๋Š” ์™ผ์ชฝ ์ƒ๋‹จ
plt.legend(['10', '10*2', '10*3'], fontsize=15, loc='lower right', ncol=3)
# ncol : ์ปฌ๋Ÿผ์œผ๋กœ ์ƒ์„ฑ(๊ฐ€๋กœ๋กœ)

plt.xlim(0, 12) # x,y์ถ• ๊ฐ’๋“ค์˜ ์ตœ๋Œ“๊ฐ’
plt.ylim(0, 30)

plt.xticks(rotation=30) # ๊ฐ๋„ ๋Œ๋ฆฌ๊ธฐ x,y์ถ• ๊ธ€์”จ๋“ค
plt.yticks(rotation=30)

plt.savefig('my_plot.png')  # ๊ทธ๋ž˜ํ”„๋ฅผ ์ด๋ฏธ์ง€๋กœ ์ €์žฅ

plt.show()


x = ['ํŒŒ์ด์ฌ', '์›น๊ฐœ๋ฐœ', '๋ฐ์ดํ„ฐ๋ถ„์„', '๋จธ์‹ ๋Ÿฌ๋‹', '๋”ฅ๋Ÿฌ๋‹', '์ปดํ“จํ„ฐ๋น„์ „']
y = [95, 70, 75, 60, 50, 30]
plt.figure(figsize=(8, 5))
plt.title('AI ์„ฑ์ ํ‘œ', fontsize=25)
plt.ylabel('์ˆ˜๊ฐ•์ƒ ์ ์ˆ˜')
plt.bar(x, y, alpha=0.5, color='deeppink') # ์•ŒํŒŒ : ํˆฌ๋ช…๋„
plt.show()


x = ['ํŒŒ์ด์ฌ', '์›น๊ฐœ๋ฐœ', '๋ฐ์ดํ„ฐ๋ถ„์„', '๋จธ์‹ ๋Ÿฌ๋‹', '๋”ฅ๋Ÿฌ๋‹', '์ปดํ“จํ„ฐ๋น„์ „']
y = [95, 70, 75, 60, 50, 30]
plt.figure(figsize=(8, 5))
plt.title('AI ์„ฑ์ ํ‘œ', fontsize=25)
plt.xlabel('์ˆ˜๊ฐ•์ƒ ์ ์ˆ˜')
plt.barh(x, y, alpha=0.5, color='deepskyblue')
plt.show()


import pandas as pd

x = ['ํŒŒ์ด์ฌ', '์›น๊ฐœ๋ฐœ', '๋ฐ์ดํ„ฐ๋ถ„์„', '๋จธ์‹ ๋Ÿฌ๋‹', '๋”ฅ๋Ÿฌ๋‹', '์ปดํ“จํ„ฐ๋น„์ „']
y = [95, 70, 75, 60, 50, 30]
df = pd.DataFrame({"๊ณผ๋ชฉ":x, "์ ์ˆ˜":y})

fig, ax = plt.subplots(figsize=(5, 4)) # ๋„ํ™”์ง€,x/y์ถ• ์ •์˜
# plt.๋ฉ”์„œ๋“œ ์“ฐ๋ฉด ๋‹ค๋ฅธ ๊ฑฐ ๋ชป์”€, ํ•˜๋‚˜์˜ ๊ฐ์ฒด(ax)๋ฅผ ๋งŒ๋“ค๋ฉด ๋™์‹œ์— ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Œ
ax.bar(df["๊ณผ๋ชฉ"], df["์ ์ˆ˜"])
ax.set_xlabel("๊ณผ๋ชฉ", fontsize=12)
ax.set_ylabel("์ ์ˆ˜", fontsize=12)
ax.set_title("ํ•™์ƒ ์ ์ˆ˜", fontsize=20)
ax.set_xticks(range(len(df.index)))
plt.tight_layout() # ๋ ˆ์ด์•„์›ƒ์ด ๊ฒน์น˜์ง€ ์•Š๋„๋ก ์ž๋™์œผ๋กœ ์ •๋ฆฌํ•ด์ฃผ๋Š” ํ•จ์ˆ˜
plt.show()

profile
๊ณต๋ถ€ ๊ธฐ๋ก ๊ธ€์ž…๋‹ˆ๋‹ค.

0๊ฐœ์˜ ๋Œ“๊ธ€