본문 바로가기

InfoGraph/데이터 시각화 가이드

막대 그래프 (Bar Chart) 그리기 원칙

반응형

데이터를 시각화하는 데 있어, 아마도 가장 흔하게 사용되는 그래프가 막대그래프일 것입니다.

 

사각형의 높이로 값을 나타내서 비교하는 것이기에, 그리는 입장에서는 네모진 막대를 몇 개 그리면 되는 것이고, 보는 입장에서는 사각형의 높이만 보면 되는 것이기에 한눈에 이해가 됩니다.

 

우리 뇌가 이러한 높고 낮음에 대한 분별을 잘하도록 진화되었는지도 모릅니다.

 

여하튼, 이러한 제일 간단하다는 막대그래프도 막상 그려놓고 보면 뭔가 이상할 때가 있습니다. 

 

여기서는, 막대그래프를 그릴 때 자주 실수하는 부분들과 고쳐진 모습, 좀 더 예쁘고 명확하게 표현할 수 있는 방법들을 서로 비교해가며 알아보겠습니다.

 


막대의 출발점은 항상 0이어야 한다.

아래 도표는 경상남도/북도, 전라남도/북도의 인구수를 보여줍니다.

 

오해의 소지가 있는 도표

[모호함]실제 차이보다 더 차이가 나는 것처럼 보일 수 있음

막대가 인구수 1500에서 시작하고 있습니다.  

그래서 막대의 끝이 정확한 위치를 가리키고는 있으나, 각 도의 인구수 차이는 실제보다 더 많은 차이가 있는 것처럼 오해를 불러일으킬 수 있게 되어 있습니다. 

 

인간의 두뇌는 막대의 높이를 가지고 그 차이를 비교하는 데 익숙해져 있기에, 이 도표에서 경남과 전남의 차이는 약 5배 정도 차이가 나는 것처럼 인식됩니다. 실제 차이는 경남이 3,366이고 전남이 1,790으로 약 1.8배 차이가 나는데, 도표 상으로는 5배 정도 차이가 나는 것으로 잘 못 전달될 수 있습니다.

 

물론, 일부러 극적인 차이감을 느끼게 하기 위해서 이렇게 할 수 있으나, 그것은 자료를 객관적으로 보여주는 태도는 못 될 것입니다.

 

따라서, 막대 차트를 그릴 때는 항상 0(zero)에서 시작해야 합니다.

막대의 높이 차가 실제 값의 차이와 같아야 합니다.

 

막대의 시작점을 0에서 시작해서 오해를 없앤 도표

[양호]막대의 시작이 0에서 시작되어 모호함 없음

 


정렬해야 할 데이터와 하지 말아야 할 데이터를 구분해야 한다.

 

정렬해야 하는 데이터

위에서 각 도별 인구수는 내림차순 혹은 오름차순으로 정렬해서 보여주는 것이 가독성이 좋습니다. 그래야 인구수가 가장 많은 곳과 적은 곳을 쉽게 파악할 수 있게 됩니다. 

 

만약 아래처럼 정렬되지 않은 상태라면, 인간의 두뇌는 이 도표를 읽으면서 머릿속에서 한번 더 정렬을 해야기에 피곤해집니다.

 

[가독성 낮음]인구 수별로 정렬되지않아 가독성 떨어짐

 

 

정렬하지 말아야 하는 데이터

정렬하지 말아야 하는 경우도 있습니다.

 

아래는 우리나라 연령대별 인구수입니다. 

 

[양호]x축 범례가 연령순으로 정렬된 상태에서 각 값의 차이를 막대 높이로 표현하고 있음

 

이것을 오름차순이나 내림차순으로 정렬해버리면 이상해집니다.

 

[모호함]인구수에 따라 정렬을 해버림으로써 x축 범례의 순서가 깨져버림

 

이것은 x축 범례가 나이 순서라는 `순서 속성`이 있는 건데, 인구수에 의한 정렬을 함으로써 원래 가지고 있던 연령별이라는 순서 속성이 깨져버려서, 도표가 모호해집니다.

 

인구수가 가장 낮은 연령대가 어디이고, 가장 높은 곳이 어디인지를 알아야 한다면 이렇게 정렬을 하는 것도 나쁘지 않지 않느냐고 생각할 수도 있겠습니다. 
그러나, 그것을 위해서 굳이 정렬까지 해야 할까요?

굳이 정렬을 하지 않아도 도표에서 가장 높은 값과 낮은 값을 쉽게 찾을 수 있을 것입니다. 
그런데, 정렬을 해버린 경우는 가장 높은 값과 낮은 값을 찾기는 쉬우나, 전체 연령대별로 어떤 차이와 분포를 보이고 있는지에 대한 정보를 얻기에 쉽지 않습니다.  실제로 이러한 연령대별 인구수에서 얻고자 하는 인사이트는 "50대까지가 가장 많고, 젊은 층인 왼쪽 편과 노년층인 오른편으로 갈수로 인구수가 점점 작아지고, 왼쪽 편보다 오른편 기울기가 더 가파르군" 하는 것일 텐데, 정렬을 하면 이런 인사이트를 얻을 수는 없게 됩니다.

 

즉, x축 범례가 `순서 속성`이 있는 데이터의 경우는 그 값으로 정렬을 하면 안 됩니다.


가로 막대 타입이 더 보기 좋은 경우가 있습니다.

아래 막대 차트는 x축 레이블 글자가 길어서, 글자를 기울여 쓰기 했습니다. 

 

칸이 좁아서 어쩔 수 없긴 한데, 글자 읽기도 힘들고 도표 모양이 보기 안 좋게 됩니다.

 

[조악함]막대 레이블 쓰기 칸이 부족해서 기울여쓴 경우 읽기 힘들고 모양 안좋음

 

이처럼 가로축(x축) 레이블이 길 때는 x축과 y축을 바꿔서 막대를 가로로 그리는 편이 오히려 낫습니다.

 

[양호]레이블 글자가 긴 경우 가로 막대형태가 더 보기 좋음


색상/외곽선

 

막대에 대한 색상은 단색이면서 외곽선이 없는 것이 깔끔합니다.

 

[양호]파랑 혹은 주황의 단색을 사용하여 깔끔

 

 

막대에 그라디에이션을 넣으면 막대의 레이블 간의 순서를 주는 오해를 야기시킵니다.  각 도간에는 우열이 없고 단지 인구수에 대한 차이만을 막대의 높이로 표현해야 하는데, 색상으로 순서를 주는 순간 레이블에 대한 순서라는 오해를 부를 수 있습니다.

 

[모호함]인구수에 대한 비교만이 아닌 x축 레이블간에 순위가 있는 오해 야기

 

여러 색상을 혼합하는 것도 의미 없고 깔끔하지 않습니다. 

[조악함]의미없이 여러 색상 사용으로 깔끔하지 못함

 

막대에 윤곽선을 넣는 것도 깔끔하지 않습니다.

[조악함]막대 윤곽선을 넣음으로써 깔끔하지 않음

 

 

윤곽선만으로 막대를 그리는 것은 일반적으로 안 좋습니다. 특히 막대 사이 간격이 좁을 때는 막대의 안과 밖을 구분하기 어려워 눈이 피로해집니다.

 

[조악함] 윤곽선만으로 막대 표현해서 가독성 떨어짐

 

아래처럼 막대에 색상을 넣는 게 가독성이 훨씬 좋습니다.

 

[양호] 윤곽선이 아닌 색을 칠함으로써 가독성 좋아짐. 회색도 나쁘지 않음


막대의 가로길이, 레이블

막대의 가로는 너무 넓어서 간격이 너무 비좁지만 않게 충분히 넓게 하는 게 보기 좋습니다. 또한 레이블 폰트는 보는 이가 충분히 읽을 수 있도록 큰 글씨가 좋습니다.

 

왼쪽보다는 오른편이 가독성 더 좋음. 막대의 면적이 넓어져서 막대구분이 확실하고, 레이블 폰트가 커서 눈이 편함 

 

막대 넓이를 너무 크게해서 막대 사이 간격이 너무 좁으면 이 또한 안 좋습니다. 막대 구분이 힘들고 보기 안 좋습니다.

 

[조악함]막대 사이 간격이 너무 좁아서 막대 구분이 힘들고 안 예쁨

 


막대에 수치 값을 적는 것도 좋습니다.

막대의 높이값을 막대의 끝 혹은 안쪽에 적는 것도 나쁘지 않습니다.

 

[양호]막대의 높이값을 적어 주는 것도 나쁘지 않습니다.

 

막대의 값이 표시되는 경우 y축 눈금 값과 눈금선이 없는 것도 깔끔해서 나쁘지 않습니다. 단, 미세한 높이 차이를 알게 해야 하는 경우는 가로선을 없애면 안 됩니다.

 

[양호] 눈금선을 없애서 깔끔하게 표현

 


약간의 배경은 좋음. 3차원 막대는 대부분 안 좋습니다.

배경에 약간의 음영을 넣는 것도 나쁘지 않습니다. 

[양호]배경에 약간의 음영을 넣어 입체감을 주는 것도 나쁘지 않음

 

다만 3차원 막대로 표현하는 것은 대부분 예쁘지 않습니다.

 

[조악함]3차원 막대는 대부분 예쁘지 않음

 

-끝-

반응형