Python

[python] cmap(Color Map)๊ณผ ๋žœ๋ค ๋ฐ์ดํ„ฐ ์‚ฐ์ ๋„ ๊ทธ๋ฆฌ๊ธฐ - Matplotlib ํ™œ์šฉ

hyonie 2024. 5. 12. 18:09

Python์„ ์‚ฌ์šฉํ•˜์—ฌ Matplotlib์„ ์ด์šฉํ•ด ์‚ฐ์ ๋„๋ฅผ ๊ทธ๋ฆฌ๋Š” ๊ณผ์ •์„ ๋‚˜ํƒ€๋‚ธ๋‹ค. ์—ฌ๊ธฐ์„œ ์‚ฐ์ ๋„๋Š” ๋ฌด์ž‘์œ„๋กœ ์ƒ์„ฑ๋œ ์ ๋“ค์„ ๊ทธ๋ž˜ํ”„ ์ƒ์— ๋‚˜ํƒ€๋‚ธ๋‹ค.

 

 

 

 


๋žœ๋ค ๋ฐ์ดํ„ฐ์˜ ์‚ฐ์ ๋„

๋จผ์ €, ์ฝ”๋“œ๋Š” x, y, size๋ผ๋Š” ์„ธ ๊ฐœ์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ ๋‹ค. ์ด ๋ฆฌ์ŠคํŠธ๋“ค์€ ๊ฐ๊ฐ x์ขŒํ‘œ, y์ขŒํ‘œ, ์ ์˜ ํฌ๊ธฐ๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.

import matplotlib.pyplot as plt
import random

x=[]
y=[]
size=[]

for i in range(100):
  x.append(random.randint(50,100))
  y.append(random.randint(50,100))
  size.append(random.randint(10,100))

plt.scatter(x, y ,s=size)
plt.show()

 

๋‹ค์Œ์œผ๋กœ, ๋ฐ˜๋ณต๋ฌธ์„ ํ†ตํ•ด 100๋ฒˆ์˜ ๋ฐ˜๋ณต ๋™์•ˆ ๋‹ค์Œ์„ ์‹คํ–‰ํ•œ๋‹ค:

  1. x ๋ฆฌ์ŠคํŠธ์—๋Š” 50์—์„œ 100 ์‚ฌ์ด์˜ ์ž„์˜์˜ ๊ฐ’์„ ์ถ”๊ฐ€ํ•œ๋‹ค.
  2. y ๋ฆฌ์ŠคํŠธ์—๋„ x์™€ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ์ž„์˜์˜ ๊ฐ’์„ ์ถ”๊ฐ€ํ•œ๋‹ค.
  3. size ๋ฆฌ์ŠคํŠธ์—๋Š” 10์—์„œ 100 ์‚ฌ์ด์˜ ์ž„์˜์˜ ๊ฐ’์„ ์ถ”๊ฐ€ํ•œ๋‹ค.

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด x, y, size ๋ฆฌ์ŠคํŠธ์—๋Š” ๊ฐ๊ฐ 100๊ฐœ์˜ ๊ฐ’์ด ์ €์žฅ๋œ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ, plt.scatter() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฐ์ ๋„๋ฅผ ๊ทธ๋ฆฐ๋‹ค. ์ด ํ•จ์ˆ˜๋Š” x์™€ y ์ขŒํ‘œ๋ฅผ ๋ฐ›์•„๋“ค์ด๊ณ , ๊ฐ ์ ์˜ ํฌ๊ธฐ๋Š” size ๋ฆฌ์ŠคํŠธ์˜ ๊ฐ’์— ๋”ฐ๋ผ ๊ฒฐ์ •๋œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  plt.show() ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์‚ฐ์ ๋„๋ฅผ ํ™”๋ฉด์— ํ‘œ์‹œํ•œ๋‹ค.

์ด๋Ÿฌํ•œ ๊ณผ์ •์„ ํ†ตํ•ด 50์—์„œ 100 ์‚ฌ์ด์˜ ๋ฌด์ž‘์œ„ํ•œ ์œ„์น˜์— ์ ์„ ํ‘œ์‹œํ•˜๊ณ , ๊ฐ ์ ์˜ ํฌ๊ธฐ๋Š” 10์—์„œ 100 ์‚ฌ์ด์˜ ์ž„์˜์˜ ๊ฐ’์œผ๋กœ ์ง€์ •๋œ๋‹ค.


๋žœ๋ค๋ฐ์ดํ„ฐ ํฌ๊ธฐ์— ๋”ฐ๋ฅธ ์ƒ‰์ƒ ํ‘œํ˜„

 

์ƒ‰์ƒ์ด ๋‹จ์กฐ๋กœ์›Œ์„œ cmap์˜ต์…˜์„ ์ถ”๊ฐ€ํ•œ๋‹ค.

plt.scatter() ํ•จ์ˆ˜์˜ c ๋งค๊ฐœ๋ณ€์ˆ˜์™€ cmap ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ๊ฐ๊ฐ ์ ์˜ ์ƒ‰์ƒ๊ณผ ์‚ฌ์šฉํ•  ์ปฌ๋Ÿฌ๋งต์„ ์ง€์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.

plt.scatter(x, y ,c=size, cmap='jet')
plt.colorbar()
plt.show()

 

 

 


 

alpha ๊ฐ’์„ ์ฃผ์–ด ํˆฌ๋ช…๋„ ํ‘œํ˜„

๊ฒน์น˜๋Š” ์›๋“ค์ด ๊ฐ€๋ ค์ง€๋Š” ํ˜„์ƒ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์•ŒํŒŒ๊ฐ’์„ ์‚ฌ์šฉํ•˜์—ฌ ํˆฌ๋ช…๋„๋ฅผ ์กฐ์ ˆํ•œ๋‹ค.

plt.scatter(x, y ,c=size, cmap='jet', alpha=0.5)
plt.colorbar()
plt.show()

์œ„ ์ฝ”๋“œ์—์„œ ์ถ”๊ฐ€๋œ ๋ถ€๋ถ„์€ alpha=0.5์ด๋‹ค. ์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ์ ์˜ ํˆฌ๋ช…๋„๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉฐ, 0๋ถ€ํ„ฐ 1๊นŒ์ง€์˜ ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค. 0์— ๊ฐ€๊นŒ์šธ์ˆ˜๋ก ํˆฌ๋ช…ํ•˜๊ณ , 1์— ๊ฐ€๊นŒ์šธ์ˆ˜๋ก ๋ถˆํˆฌ๋ช…ํ•ด์ง„๋‹ค. ์ด๋ ‡๊ฒŒ ํ•จ์œผ๋กœ์จ ๊ฒน์น˜๋Š” ๋ถ€๋ถ„๋„ ์ผ๋ถ€ ํˆฌ๋ช…ํ•˜๊ฒŒ ์ฒ˜๋ฆฌ๋˜์–ด ์ ๋‹นํžˆ ๋ณด์ด๊ฒŒ ๋œ๋‹ค.