데이터 시각화는 수많은 데이터의 특성을 한눈에 볼 수 있도록 만드는 과정이다. 그렇다면 데이터 시각화는 데이터의 무엇을 표현하고 어떤 특성들을 나타낼 수 있는가? 우리는 초등학교 시절부터 데이터 시각화를 배워왔다. 지금도 초등학교 4학년 학생은 1학기 수학 교과서에서 막대그래프를 사용하여 데이터를 표현하는 방법을 배운다. 그래서인지 데이터 시각화에서 많이 쓰는 방법은 막대그래프이며, 때에 따라서 선 그래프, 파이 차트(원그래프) 등도 흔히 사용되고 있다. 데이터 시각화를 하기 전에 먼저 데이터 시각화로 무엇을 표현하고 어떤 데이터 시각화 방법을 쓸 것인지를 결정해야 한다. 일반적으로 데이터의 분포, 비교, 추세, 구성, 상관, 지리를 표현하는 데 데이터 시각화가 효과적으로 활용된다. (10쪽)
Plotly 패키지는 R, 파이썬, 줄리아, 자바스크립트, F#, 매트랩 등의 다양한 언어에서 사용이 가능하도록 각각의 언어에 바인딩되는 패키지를 개발하여 제공하고 있다. Plotly에서 제공하는 데이터 시각화는 산점도, 선 그래프와 같은 기본 차트(basic chart), 박스 플롯, 히스토그램과 같은 통계 차트(statistical chart), 히트맵, 삼각 플롯(ternary plot)과 같은 과학 차트(scientific chart), 시계열 차트(time series chart), 캔들스틱 차트와 같은 재무 차트(financial chart) 등의 다양한 차트와 플롯을 제공한다. (20쪽)
보통 히스토그램은 bin의 크기에 따라 설정된 범위에 속한 데이터의 사례수, 즉 데이터 카운트를 표현한다. Plotly에서도 기본적인 히스토그램은 데이터 사례수를 표현하는 방법으로 히스토그램을 그리지만, 이 값을 특정한 함수 값으로 대체하는 방법도 제공한다. Plotly에서 히스토그램 함수로 제공하는 것은 사례수를 표시하는 count, bin에 속한 값의 합을 표시하는 sum, 평균을 표시하는 avg, 가장 작은 값을 표시하는 min, 가장 큰 값을 표시하는 max 등과 같은 5개이다. 히스토그램 함수는 histogram 트레이스의 histfunc 속성에 함수명을 설정함으로써 사용할 수 있다. 만약 count 이외의 함수를 사용한다면 각각의 함수에 적용되어야 하는 변수를 y 속성에 설정해주어야 한다. (143쪽)
Plotly는 동적 데이터 시각화이기 때문에 온라인에서 사용자의 반응에 따라 작동하는 다양한 기능을 제공한다. 여기에는 여러 가지 기능이 있지만, 데이터값과 해당 값의 변량 등 시각화된 데이터의 해석이 원활하도록 제공하는 기능이 호버이다. 호버는 Plotly에서만 제공하는 기능은 아니고 과거 ‘tooltip’이라는 이름으로 많이 사용된 기능이다. 즉, 사용자의 마우스나 디지털 포인팅 장비와 상호 반응해 그 기기가 포인팅하는 곳의 정보를 조그마한 박스를 통해 사용자에게 알려주는 기능이다. 이 호버는 흔히 ‘mouse over’, ‘mouse hover’, ‘hover box’라고도 불리며, CSS를 사용하여 웹 브라우저에서 사용할 수 있다. (234쪽)
R의 ggplot2나 파이썬의 Matplotlib, seaborn으로 만든 정적 시각화는 그래프를 만들 때 시각화한 데이터 외에 시각화 자체에서 추가적으로 데이터를 얻기는 어렵다. 따라서 시각화에 추가적인 데이터를 제공하기 위해서는 다시 코딩해서 만들어야 하는 불편함이 따른다. 특히 특정 위치의 데이터값을 확인하거나 특정 구간 데이터를 줌인하기 위해서도 다시 코딩해야 하는데 사용자의 사용 패턴을 예상하여 수없이 많은 시각화를 만들어 놓을 수는 없다. 반면 Plotly와 같은 동적 시각화에서는 특징적 데이터값의 확인, 줌인, 줌아웃, 특정 데이터만의 표기 등 데이터 분석시 활용할 수 있는 다양한 기능을 제공한다. Plotly에서는 이와 같은 기능들을 모아둔 아이콘 집합을 모드바라고 한다. (355쪽)
파이썬에서 Plotly를 만드는 데에는 Plotly 라이브러리 plotly.graph_objects 모듈을 사용하는 방법과 plotly.express 모듈을 사용하는 두 가지 방법이 있다. Plotly 제작사에서도 Plotly의 생성 원리를 파악하고 상세한 기능을 사용하기 위해서는 graph_objects를 사용할 것을 권고하고 있다. 하지만 graph_objects 모듈을 사용하여 Plotly를 만들다 보면 코드도 매우 길어지고 어디 한 군데 괄호가 빠지는 경우나 잘못 표시되는 경우 매우 혼란스러워진다. 그래서 Plotly를 보다 쉽게 만들 수 있는 express 모듈을 제공한다. (420쪽)