Python

[python] ์‚ฐ์ ๋„์™€ ๋ฒ„๋ธ”์ฐจํŠธ ๊ทธ๋ฆฌ๊ธฐ - Matplotlib ํ™œ์šฉ

hyonie 2024. 5. 12. 17:27

 

 

 


scatter() ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜์—ฌ ์‚ฐ์ •๋„ ๊ทธ๋ฆฌ๊ธฐ

์œ„ ์ฝ”๋“œ๋Š” ํŒŒ์ด์ฌ์˜ Matplotlib ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฐํฌ๋„(์‚ฐ์ ๋„)๋ฅผ ๊ทธ๋ฆฌ๋Š” ์˜ˆ์‹œ์ด๋‹ค. ์‚ฐํฌ๋„๋Š” ๋ฐ์ดํ„ฐ์˜ ๋ถ„ํฌ๋ฅผ ์‹œ๊ฐํ™”ํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” x์ถ•์—๋Š” 1, 2, 3, 4๋ฅผ, y์ถ•์—๋Š” 10, 30, 20, 40์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋„ค ๊ฐœ์˜ ์ ์„ ํ‘œ์‹œํ•œ๋‹ค.

import matplotlib.pyplot as plt

# x์ถ• ๋ฐ์ดํ„ฐ
x_values = [1, 2, 3, 4]
# y์ถ• ๋ฐ์ดํ„ฐ
y_values = [10, 30, 20, 40]

# ์‚ฐํฌ๋„ ๊ทธ๋ฆฌ๊ธฐ
plt.scatter(x_values, y_values)

# ๊ทธ๋ž˜ํ”„ ๋ณด์ด๊ธฐ
plt.show()

 

 

 


scatter ํŒŒ๋ผ๋ฏธํ„ฐ  ๊ธฐ๋ณธ ์˜ต์…˜

์œ„ ์ฝ”๋“œ์—์„œ ์‚ฌ์šฉ๋œ scatter() ํ•จ์ˆ˜๋Š” Matplotlib์˜ ์‚ฐํฌ๋„๋ฅผ ๊ทธ๋ฆฌ๋Š” ํ•จ์ˆ˜์ด๋‹ค. ์ด ํ•จ์ˆ˜์—๋Š” ์—ฌ๋Ÿฌ ์˜ต์…˜์ด ์žˆ๋‹ค. ๊ทธ ์ค‘ ํ•˜๋‚˜๋Š” 's'๋ผ๋Š” ์˜ต์…˜์œผ๋กœ, ๋งˆ์ปค์˜ ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•˜๋Š” ์˜ต์…˜์ด๋‹ค. ์—ฌ๊ธฐ์„œ 's=None'์œผ๋กœ ์„ค์ •๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ๋งˆ์ปค์˜ ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š์•˜๋‹ค. ์ด ๊ฒฝ์šฐ์—๋Š” ๋งˆ์ปค์˜ ๊ธฐ๋ณธ ํฌ๊ธฐ๊ฐ€ ์‚ฌ์šฉ๋œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, 's=100'๊ณผ ๊ฐ™์ด ์„ค์ •ํ•˜๋ฉด ๋งˆ์ปค์˜ ํฌ๊ธฐ๊ฐ€ 100์ด ๋œ๋‹ค. ๋งˆ์ปค์˜ ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š์•˜์œผ๋ฏ€๋กœ ๊ธฐ๋ณธ๊ฐ’์ด ์‚ฌ์šฉ๋œ๋‹ค.

 

 

 

 

 


 

์ƒ‰์ƒ๊ณผ ํฌ๊ธฐ๋กœ ํ‘œํ˜„๋œ ์‚ฐ์ •๋„

scatter() ํ•จ์ˆ˜์˜ ๋˜ ๋‹ค๋ฅธ ์˜ต์…˜์ธ 'c'๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ ๋งˆ์ปค์˜ ์ƒ‰์ƒ์„ ์ง€์ •ํ–ˆ๋‹ค. 'c' ์˜ต์…˜์€ ๋งˆ์ปค์˜ ์ƒ‰์ƒ์„ ์ง€์ •ํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค์ •ํ–ˆ๋‹ค:

import matplotlib.pyplot as plt
plt.scatter([1,2,3,4], [10,30,20,40], s = [100,200,300,400], c=['red','blue', 'green', 'gold'])
plt.show()

 

 

 


 

๋ฒ„๋ธ” ์ฐจํŠธ ๊ทธ๋ฆฌ๊ธฐ

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

import matplotlib.pyplot as plt

# ์‚ฐ์ ๋„ ๋ฐ์ดํ„ฐ ์„ค์ •
x_values = [1, 2, 3, 4]
y_values = [10, 30, 20, 40]
sizes = [100, 200, 300, 400]  # ๋งˆ์ปค์˜ ํฌ๊ธฐ
colors = range(4)  # ์ปฌ๋Ÿฌ ๋ฐ”์— ์‚ฌ์šฉ๋  ์ƒ‰์ƒ

# ๋ฒ„๋ธ” ์ฐจํŠธ ๊ทธ๋ฆฌ๊ธฐ
plt.scatter(x_values, y_values, s=sizes, c=colors)

# ์ปฌ๋Ÿฌ ๋ฐ” ์ถ”๊ฐ€
plt.colorbar()

plt.show()

์œ„ ์ฝ”๋“œ์—์„œ๋Š” c=range(4)๋กœ ์ปฌ๋Ÿฌ ๋ฐ”์— ์‚ฌ์šฉ๋  ์ƒ‰์ƒ์„ ์ž๋™์œผ๋กœ ์ง€์ •ํ–ˆ๋‹ค. ์ปฌ๋Ÿฌ ๋ฐ”๋Š” ๋ฐ์ดํ„ฐ์˜ ๋ฒ”์œ„๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š”๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. ์ด๊ฒƒ์œผ๋กœ ๊ฐ ๋ฐ์ดํ„ฐ ํฌ์ธํŠธ๊ฐ€ ์–ด๋–ค ๋ฒ”์œ„์— ์†ํ•˜๋Š”์ง€ ์‹œ๊ฐ์ ์œผ๋กœ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

 


 

์ƒ‰๊ณผ ํฌ๊ธฐ๋กœ ํ‘œํ˜„๋œ ๋ฒ„๋ธ” ์ฐจํŠธ

cmap ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์ปฌ๋Ÿฌ๋งต์„ ์ง€์ •ํ•œ๋‹ค. ์ปฌ๋Ÿฌ๋งต์€ ๋ฐ์ดํ„ฐ์˜ ๊ฐ’์„ ์ƒ‰์ƒ์œผ๋กœ ๋ณ€ํ™˜ํ•ด์ฃผ๋Š”๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” 'jet'์ด๋ผ๋Š” ์ปฌ๋Ÿฌ๋งต์„ ์‚ฌ์šฉํ–ˆ๋‹ค. 'jet' ์ปฌ๋Ÿฌ๋งต์€ ๋ฐ์ดํ„ฐ์˜ ๊ฐ’์„ ์‹œ๊ฐ์ ์œผ๋กœ ์ž˜ ๊ตฌ๋ณ„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ ˆ์ธ๋ณด์šฐ ์ปฌ๋Ÿฌ๋กœ ํ‘œํ˜„ํ•œ๋‹ค.

import matplotlib.pyplot as plt
plt.scatter([1,2,3,4], [10,30,20,40], s = [100,200,300,400], c=range(4), cmap='jet')

plt.colorbar()
plt.show()

๊ทธ๋ž˜ํ”„์—์„œ๋Š” ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ์— ๋”ฐ๋ผ ๋งˆ์ปค์˜ ํฌ๊ธฐ๊ฐ€ ๋‹ค๋ฅด๊ณ , colors์— ๋”ฐ๋ผ ์ƒ‰์ƒ์ด ๋ณ€ํ•œ๋‹ค. ์ปฌ๋Ÿฌ ๋ฐ”๋Š” ์ด ์ƒ‰์ƒ์„ ํ‘œ์‹œํ•˜๋ฉฐ, ์ปฌ๋Ÿฌ๋งต์€ ์ด๋Ÿฌํ•œ ๊ฐ’์„ ์–ด๋–ป๊ฒŒ ์ƒ‰์ƒ์œผ๋กœ ๋ณ€ํ™˜ํ• ์ง€๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค.