6강 / 20강

색 — 순차·발산·범주, 그리고 색맹

무지개는 왜 나쁜 색표인가

색 — 순차·발산·범주, 그리고 색맹
색표는 세 갈래뿐입니다. 한쪽으로 커지는 색, 가운데가 0인 색, 서로 다른 색. 섞으면 거짓말이 됩니다.

색은 그림에서 가장 쉽게 망가지는 부분입니다. 그런데 규칙은 단순해요. 색표는 세 갈래뿐입니다.

🌡️
순차 (sequential)
0에서 커지기만 하는 양. 밝음 → 어두움 한 방향.
발현량 · 세포 수 · 밀도
⚖️
발산 (diverging)
가운데에 뜻이 있는 0 이 있는 양. 파랑 ← 흰색 → 빨강.
z점수 · log2FC
🎨
범주 (categorical)
순서가 없는 이름들. 서로 다르기만 하면 된다.
세포종류 · 암종 · 조건

논문 Fig. 6A 의 히트맵은 z점수를 그렸으니 발산 색표를 써야 합니다. Fig. 5B 의 UMAP 은 세포종류를 칠했으니 범주 색표고요. 이 둘을 바꿔 쓰면 그림이 거짓말을 시작합니다.

같은 히트맵을 여러 색표로 칠해 봅니다. 색맹 흉내와 흑백 인쇄도 켜 보세요.
불러오는 중…
viridis 는 아름답지만 0 이 가운데가 아닙니다. z점수에는 발산 색표를 써야 합니다.
Python 브라우저에서 실행

범주 색은 다른 문제를 안고 있습니다. 구분되는 색은 생각보다 적어요.

범주 개수어떻게 할까
2~4개색으로 충분하다
5~8개색맹 안전 팔레트를 골라 쓴다 (Okabe-Ito 등)
9개 이상색만으로는 안 된다. 라벨을 그림 안에 직접 쓰거나, 중요한 것만 칠하고 나머지는 회색으로

논문 Fig. 5B 의 UMAP 은 세포종류를 열 가지 넘게 칠했습니다. 그래서 구름 위에 이름을 직접 써 넣었어요. 범례만으로는 짝을 못 맞추니까요. 좋은 처리입니다.

위가 정상 시야, 아래가 적록색맹 흉내입니다. 빨강/초록은 아래에서 거의 같은 색이 됩니다.
Python 브라우저에서 실행
🤔 확인 문제
z점수(평균 0, 표준편차 1)로 바꾼 히트맵에 알맞은 색표는?
🤔 확인 문제
세포종류 14가지를 UMAP 에 칠하려 합니다. 가장 좋은 방법은?
🤔 확인 문제
빨강/초록 대신 파랑/주황을 쓰면 무엇을 잃나요?