[python] cmap(Color Map)๊ณผ ๋๋ค ๋ฐ์ดํฐ ์ฐ์ ๋ ๊ทธ๋ฆฌ๊ธฐ - Matplotlib ํ์ฉ
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๋ฒ์ ๋ฐ๋ณต ๋์ ๋ค์์ ์คํํ๋ค:
- x ๋ฆฌ์คํธ์๋ 50์์ 100 ์ฌ์ด์ ์์์ ๊ฐ์ ์ถ๊ฐํ๋ค.
- y ๋ฆฌ์คํธ์๋ x์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์์์ ๊ฐ์ ์ถ๊ฐํ๋ค.
- 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์ ๊ฐ๊น์ธ์๋ก ๋ถํฌ๋ช ํด์ง๋ค. ์ด๋ ๊ฒ ํจ์ผ๋ก์จ ๊ฒน์น๋ ๋ถ๋ถ๋ ์ผ๋ถ ํฌ๋ช ํ๊ฒ ์ฒ๋ฆฌ๋์ด ์ ๋นํ ๋ณด์ด๊ฒ ๋๋ค.