Attention please

Color와 Style 사용하기 - matplotlib 본문

데이터 시각화/matplotlib

Color와 Style 사용하기 - matplotlib

Seongmin.C 2022. 10. 8. 15:11
728x90

지금까지는 matplotlib의 다양한 함수들을 이용해

용도에 맞게 여러 종류의 그림들을 그려보았습니다.

 

하지만 matplotlib에서 제공되는 기본 컬러는 단조로운 단점이 있습니다.

 

그렇기에 본인이 직접 원하는 색을 설정하여 보다 다채롭게

그림을 그릴 수 있어야 합니다.

 

 

 

 

 

 

 

 

 

rgb

본인이 원하는 컬러를 사용하기 위해

컬러 설정을 rgb로 표현할 수 있습니다.

 

r,g,b는 각각 0~1사이의 float값으로 나타낼 수 있습니다.

 

 

 

 

 

 

 

 

 

 

alpha

또한 alpha 파라미터를 이용하여 투명도를 설정할 수 있습니다.

 

0~1 사이의 값으로 설정할 수 있으며,

default값은 1입니다.

 

0에 가까울수록 흐리게 표현되며,

1에 가까울수록 진하게 표현됩니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

그러면 코드로 살펴보겠습니다.

 

fig = plt.figure(figsize = (12,3), dpi = 100)
axs = fig.subplots(1,4)

X = [1,2,3]
Y = [4,2,6]

_=axs[0].bar(X,Y)
_=axs[1].bar(X,Y, alpha = 0.3)
_=axs[2].bar(X,Y, color = (0.8, 0.4, 0.5))
_=axs[3].bar(X,Y, color = (0.8, 0.4, 0.5), alpha = 0.3)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

scatter

이번에는 scatter에서는

서로 다른 데이터를 색을 다르게 주어 구별해주었습니다.

 

fig = plt.figure(figsize = (5,5), dpi = 100)
ax = fig.subplots()

A = np.random.normal(size = (100,2))
A += np.array([-1, -1])

B = np.random.normal(size = (100,2))
B += np.array([1,1])

ax.scatter(A[:,0], A[:,1], color = 'r', alpha = 0.5)
ax.scatter(B[:,0], B[:,1], color = 'k', alpha = 0.5)

 

 

 

 

 

 

 

 

 

 

 

 

color

이번에는 color 파라미터에 값을 설정할 때

시퀀스 형태로 설정해보겠습니다.

 

각 점에 대해 색을 직접 지정할 수 있습니다.

 

fig = plt.figure(figsize = (10, 5), dpi = 100)
axs = fig.subplots(1,2)

_=axs[0].scatter([1,2,3], [6,3,7], color = 'b')
_=axs[1].scatter([1,2,3], [6,3,7], color = ['r', 'g', 'b'])

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

edgecolor, size

또한 scatter에서 edgecolor와 size를 조정해주어

새로운 느낌의 시각화를 선보일 수 있습니다.

 

fig = plt.figure(figsize = (6,3), dpi = 100)
axs = fig.subplots(1,2)

data = np.random.normal(size = (100,2))
axs[0].scatter(data[:,0], data[:,1], color = 'k', edgecolor = 'r')
axs[1].scatter(data[:,0], data[:,1], color = 'k', edgecolor = 'r', s = 10)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90
Comments