1. Color에 대한 이해
1.1 색이 중요한 이유
- 위치와 색은 가장 효과적인 채널 구분
- 위치는 시각화 방법에 따라 정해지지만,
- 색은 우리가 직접 결정 해야한다
1.2 화려함이 시각화이 전부가 아니다!
- 화려한 것은 매력적이지만, 정보를 담기 어려울 수 있다.
- 시각화에서 가장 중요한 것은 정보를 전달하는 것!
1.3 색의 의미
- 높은 온도에서는 파랑, 낮은 온도에는 빨강?
- 어색하다!
- 카카오에 초록색, 네이버에 노란색?
- 역시 어색하다!
- 기존의 정보와 느낌을 잘 활요하는 것이 중요!
- 내가 잘 모르겠다면? 기존의 사례를 공부해 활용, 이미 사용되는 색들에는 이유가 있을것이다!
2. Color Palette의 종류
2.1 범주형
- Discrete, Qualitative 등 다양한 이름 소유
- 독립된 색상으로 구성되, 범주형 변수에 적용
- 최대 10개까지 사용하는 것이 좋음, 그 이상은 기타로!
-
색의 차이로 구분하는 것의 특징 (채도 명도 조정은 지양)
- 예시
qualitative_cm_list = ['Pastel1', 'Pastel2', 'Accent', 'Dark2', 'Set1', 'Set2', 'Set3', 'tab10']
...
for idx, cm in enumerate(qualitative_cm_list):
...
axes[idx].scatter(student_sub['math score'], student_sub['reading score'],
c=student_sub['color'], cmap=ListedColormap(plt.cm.get_cmap(cm).colors[:5])
)
cbar = fig.colorbar(pcm, ax=axes[idx], ticks=range(5))
cbar.ax.set_yticklabels(groups)
...
2.2 연속형
- 순서형, 연속형 변수에 적용
- 연속적인 색상(Gradient?)로 값을 표현
- 어두운 배경에서는 밝은색, 밝은 배경에서는 어두운 색이 상대적으로 큰 값을 표현
-
단일 색상 사용, 균일한 변화가 중요한
- 예시
sequential_cm_list = ['Greys', 'Purples', 'Blues', 'Greens', 'Oranges', 'Reds',
'YlOrBr', 'YlOrRd', 'OrRd', 'PuRd', 'RdPu', 'BuPu',
'GnBu', 'PuBu', 'YlGnBu', 'PuBuGn', 'BuGn', 'YlGn']
...
for idx, cm in enumerate(sequential_cm_list):
pcm = axes[idx].scatter(student['math score'], student['reading score'],
c=student['reading score'],
cmap=cm,
vmin=0, vmax=100
)
fig.colorbar(pcm, ax=axes[idx])
axes[idx].set_title(cm)
2.3 발산형
- 중앙을 기준으로 발산
- 상반된 값
- 서로 다른 2개의 값을 표현하는 것에 적합
- 양 끝으로 갈수록 진해지도록 적용
-
중앙 색은 양쪽의 점에서 편향되지 않아야 한다 (무채색일 필요는 없음)
- 예시
diverging_cm_list = ['PiYG', 'PRGn', 'BrBG', 'PuOr', 'RdGy', 'RdBu',
'RdYlBu', 'RdYlGn', 'Spectral', 'coolwarm', 'bwr', 'seismic']
...
for idx, cm in enumerate(diverging_cm_list):
pcm = axes[idx].scatter(student['math score'], student['reading score'],
c=offset(student['math score']),
cmap=cm,
)
cbar = fig.colorbar(pcm, ax=axes[idx],
ticks=[0, 0.5, 1],
orientation='horizontal'
)
cbar.ax.set_xticklabels([0, student['math score'].mean(), 100])
...
3. 그외 Tip
3.1 강조, 그리고 색상 대비
- 차이를 강조하기 위해 Higlighting 기능 활용
- 색상 대비도 강조효과 부여 가능
- 명도대비: 밝은색 - 어두운색 (회색-검정)
- 색상대비: 가까운 색은 차이가 더 크게 보임 (파랑-보라 빨강-보라)
- 채도대비: 채도의 차이, 채도가 더 높아보임 (회색-주황)
- 보색대비: 정반대 색상을 사용하면 더 선명해 보임 (빨강-초록)
3.2 색각이상
- 색맹: 삼원색 중 특정 색을 감지 못하는 것
- 색약: 부분적 인지 이상
- 색 인지가 중요한 분야에 있어서는 이에 대한 고려가 필수!