Bar plot
.bar() .barh()
Bar plot이란 직사각형 막대를 사용하여 데이터의 값을 표현하는 차트/ 그래프를 뜻한다.
범주에 따른 수치 값을 비교하기에 적합한 방법이다.
bar plot의 형태
- Bar Plot에서는 범주에 대해 각 값을 표현 -> 즉, 1개의 feature에 대해서만 보여준다.
- 한 개의 플롯에 동시에 나타내는 방법은 여러가지가 있다.
- 쌓아서 표현하기

- 겹쳐서 표현하기

- 이웃에 배치하여 표현하기

주의할 점
- 반드시 x축의 시작은 zero(0)여야 한다. 이는 area plot, Donut chart 등에서의 다수의 시각화에서 적용된다.
0이 아니면 가독성 자체는 좋아보일 수 있어도, 값의 인지에 방해되기 때문이다.
- 더 정확한 정보를 전달하기 위해 정렬한 후에 시각화한다.
Matplotlib techniques
- X/Y axis Limit (.set_xlim(), .set_ylime())
- Spines (.spines[spine].set_visible())
- Gap (width)
- Legend (.legend())
- Margins (.margins())
- Grid (.grid())
- Ticklabels (.set_ticklabels())
- Text를 추가하기 (.text() or .annotate())
- .hist()를 사용하여 히스토그램을 만들 수 있다. 이는 연속된 느낌을 줄 수 있다.
- 제목 붙이기(.set_title())
- 라벨 붙이기(.set_xlabel(), .set_ylabel())
- 오차 막대를 추가하여 Uncertainty 정보를 추가할 수 있다(errorbar)
ETC
- 여백과 공간을 조정하면 가독성이 높아진다.

- 단순화시키는 것이 가독성이 좋다. (무의미한 3D는 사용하지 않기, 직사각형이 아닌 bar는 지양하기)
Line plot
Line Plot
.plot()
Line Plot은 연속적으로 변화하는 값을 순서대로 점으로 나타낸다.
-
5개 이하의 선을 사용하는 것을 추천, 더 많은 선은 중첩으로 인한 가독성 하락
-
여러 개의 선을 구별하는 요소
-
규칙적인 간격이 아니라면 오해를 줄 수 있다. 따라서 규칙적인 간격의 데이터가 아니라면, 각 관측 값에 점으로 표시하며 오해를 줄이자.
보간
점과 점 사이에 데이터가 없기에 이를 잇는 방법
- 데이터의 error나 noise가 포함되어 있는 경우, 데이터의 이해를 돕는 방법
- Moving Average
- Smooth Curve with Scipy
- scipy.interpolate.make_interp_spline()
- scipy.interpolate.interp1d()
- scipy.ndimage.gaussian_filter1d()
이중 축
-
한 plot에 대해 2개의 축을 이중 축(dual axis)라고 한다. 같은 시간 축에 서로 다른 두 종류의 데이터를 표현하기 위해서는 축이 두 개가 필요하다 (.twinx() 사용)
-
한 데이터에 대해 다른 단위(ex. radian, degree)로는 .secondary_xaxis(), .secondary_yaxis()를 사용한다
-
이중 축은 지양할 것
ETC
- 라인 끝단에 레이블을 추가하면 식별에 도움이 된다.

- Min/Max 정보(또는 원하는 포인트)는 추가해주면 도움이 될 수 있음 (annatation,)

- 보다 연한 색을 사용하여 uncertainty 표현 가능 (신뢰구간, 분산 등)

Scatter Plot
.scatter()
Scatter plot은 점을 사용하여 두 feature간의 관계를 알기 위해 사용하는 그래프
점에서 다양한 variation을 사용할 수 있다.(색, 모양, 크기)
Scatter plot의 목적
- 상관관계를 확인하기 위해(양의 상관관계라면 y=x의 형태를, 음의 상관관계라면 y=−x의 형태를 띈다)
- 군집, 값사이의 차이, 이상치 등을 확인하기 위해서
주의할 점
- 각 점 하나는 데이터 하나를 의미하는데, 점이 많아질 수록 점의 분포를 파악하기 힘들다. 이럴 땐, 투명도 조정, jittering, 2차원 히스토그램, Contour plot 등으로 해결할 수 있다
- 투명도 조정 : 점의 분포가 밀집되어있을 때 진하게 하는 등
- jittering : 점의 위치를 약간씩 변경, jittering보다 효율적인 방법이 많다
- 2차원 히스토그램 : heatmap 방식으로 깔끔하게 시각화할 수 있다.
- Contour plot : 분포를 등고선을 사용해 표현한다.
- 색과 마커와 크기를 사용하는 것에 주의해야 한다.
- 색상은 값을 바로 구분을 할 수 있다.
- 하지만 마커와 같은 경우에는 구별이 매우 힘들기 때문에 마커"만" 사용하는 것은 추천하지 않는다. 또한 마커는 모양마다 크기가 고르지 않아 인지하기 힘들다.
- 점의 크기를 사용하는 것을 흔히 버블 차트라고 부른다, 하지만 버블차트는 구별하기 쉽지만 오용하기 쉽다.
- 버블 차트는 관계를 나타내는 것 보다는, 각 점간의 비율, 이산적인 값들을 비교하는 것에 유용하게 사용할 수 있다.
- 인과 관계와 상관 관계는 다른 뜻이다
ETC
- 추세선을 사용하면 scatter의 패턴을 유추할 수 있다.

- Grid는 지양하나, 사용해야 한다면 최소한으로 하는 것이 좋다.
- 범주형이 포함된 관계에서는 heatmap 또는 버블 차트를 사용하는 것이 좋다.