앞서의 예제는 기본적인 D3의 개념과 사용법을 익히기 위한 것이었다.
여기에서는 일반적인 바(column) 차트에서
흔히 보는 주요 기능 몇 가지(척도 중심)를 구현하면서
D3에 대한 보다 깊은 개념과 사용법을 정리한다.
1. X / Y 축 (척도) 만들기
2. 그리드 만들기
3. 도움말 만들기
이러한 기능을 구현하기 위해서
앞서의 예제 중에서 마지막 예제를 다음과 같이 수정해 준다.
차트의 가로(X)와 세로 (Y) 축에
주어진 데이터의 값이 출력되는 것이
보기에도 좋고 차트에서 일반적으로 제공되는 기능이기도 하다.
따라서, 이전에는 데이터를 세로 축(Y)의 값만 배열로 작성했지만
가로축(X)에도 값을 출력하기 위해 Json을 배열로 작성했다 [라인 24].
예로, X축의 값 A, Y축의 값 9와 같이 ({x:'A', y:9})
X, Y의 값을 하나의 세트로 구성하였다.
이러한 데이터 구조의 변화에 따라,
33, 36, 44 라인에 작성된 것 같이 사용법에 변화가 있다.
.attr("height", function(d, i) {return (d.y*5)})
.attr("y", function(d, i) {return (250-d.y*5)});
.attr("y", function(d, i) {return 250-d.y*5 + 15});
바의 높이와 위치를 계산할 때
변수 d로 받아서 사용하던 데이터 사용법을 바꾸어 주어야 한다.
D3에서 data 지정을 배열로 하면
각각의 속성 지정에 넘어오는 값은 각 배열의 원소(d)가 넘어오고,
이 배열 원소는 그냥 값이니 그대로 사용하면 된다.
즉, d * 5와 같이 바로 사용했다.
수정한 예제는 Json 배열이니 각 원소는 Json이 되고
Json은 x, y로 지정되어 있기 때문에
d.y * 5와 같은 방식으로 사용되게 된다.
이상의 코드는 앞서의 예제를 배열에서 Json으로 바꾼 것 외에
다음 실행 결과와 같이 CSS를 이용하여 SVG 테그에 외곽선을 그렸다 [라인 4].
![](https://t1.daumcdn.net/cfile/tistory/2206F24C58D7D1A516)
외곽선이 있는 실행 결과를 보면
차트가 왼쪽으로 치우친 것을 알 수 있다.
즉, 주어진 SVG의 크기에 맞게 제작되지 않았다.
앞서의 예제에서 크기에 맞춰서 바(rect)를 생성하는 수식을 사용하지 않았다.
즉, 각 개별 바의 크기는
바의 간격과 바의 수 (데이터의 수)를 고려하여
SVG의 크기(width)에 맞게 계산해야 한다.
이전 예제에서는 바의 크기(width)는 40, 간격은 10으로 고정해서 구현했다.
바의 높이도 주어진 값에 5를 곱했을 뿐이다.
바의 높이는 주어진 값 중 최고 값(Max)과
SVG의 높이(height)를 비율로 계산해서 처리해야 한다.
서술이 길었는데
핵심은 제법 복잡할 수 있는 이러한 처리를
D3에서는 간단한 코드 몇 줄로 구현할 수 있다는 것이다.
먼저 다음 그림과 같이
SVG 크기에 맞추어 X축부터 출력해 본다.
![](https://t1.daumcdn.net/cfile/tistory/253A0F4758D7D1A512)
기능을 구현하기 전에 D3에서 제공하는 scale에 대해서 알아야 하는데
v3에서 v4로 바뀌면서 변화된 것이 많고
종류도 많은데 정리된 자료가 별로 없다.
D3의 주요 기능 중 하나이니
영문 자료라도 확인해 두면 도움이 될 것이다.
v4에 대한 자료는 별로 없지만
v3는 검색해 보거나 다음 자료들을 참고하면 도움이 될 것이다.
여기서는 필요한 기능만 정리하고 넘어간다.
두 버전의 차이를 간단하게 정리하면
v3에서는 scale(척도)과 axix(축)을 나누어서 구현했다.
v4에서는 하나(scale)로 처리하는 차이가 있다.
v4에 대한 영문 자료를 대충만 봐도 알 수 있지만
아주 많은 척도가 정의되어 있다.
이 중에서 scaleBand라는 척도가 사용된다는 것만 기억하고 넘어간다.
척도에서 중요한 개념(함수)이 domain과 range로
v3와 v4에서 같은 개념과 방식으로 사용된다.
domain은 데이터 값들의 정보(범위, 값)를 지정하고,
range는 출력되는 화면의 정보(범위, 픽셀)을 의미한다.
즉, 척도는 데이터 정보과 출력 정보를 결합하여 계산하는 역활을 하는 것이다.
예로, 1부터 5까지의 값을 가지는 데이터가 있고
출력하고자 하는 차트(SVG)의 너비가 100픽셀(px)이라고 하면,
domain([1,5])가 되고 range([1,100])로 작성한다.
그리고, 척도(scaleBand)에서
데이터 값이 1일때는 20픽셀, 2일때는 40픽셀과 같은
적당한 위치값을 계산해서 반환하게 된다.
즉, 척도(scaleBand)라는 클래스에
데이터 값(domain)과 출력 범위(range)를 넣어주고
필요한 값을 꺼내어 사용하면 된다.
필요한 값은 한 데이터(차트 도형, Rect)의 크기와 위치이다.
크기는 x축이니 width로 bandwidth란 메소드를 이용하고
위치는 척도의 인스턴스(xScale) 함수를 호출하면 된다.
이러한 기초 지식을 가지고 다음 코드를 이해해 본다.
앞서 정리한 내용을 코드로 작성하고 빨강색으로 표시하였다.
var dataset = [{x:'A', y:9 }, {x:'B', y:19}, {x:'C', y:29}, {x:'D', y:39},
{x:'E', y:29}, {x:'F', y:19}, {x:'G', y:9 }];
var svg = d3.select("svg");
var width = parseInt(svg.style("width"), 10);
var height = parseInt(svg.style("height"), 10)-20;
var xScale = d3.scaleBand() ①
.domain(dataset.map(function(d) { return d.x;} ))
.range([0, width]).padding(0.2);
svg.selectAll("rect")
.data(dataset)
.enter().append("rect")
.attr("class", "bar")
.attr("height", function(d, i) {return (d.y*5)})
.attr("width", xScale.bandwidth()) ②
.attr("x", function(d, i) {return xScale(d.x)})
.attr("y", function(d, i) {return (height-d.y*5)});
svg.selectAll("text")
.data(dataset)
.enter().append("text")
.text(function(d) {return d.y})
.attr("class", "text")
.attr("x", function(d, i) {return xScale(d.x)+xScale.bandwidth()/2})
.style("text-anchor", "middle")
.attr("y", function(d, i) {return height-d.y*5 + 15});
svg.append("g") ③
.attr("transform", "translate(0," + (height) + ")")
.call(d3.axisBottom(xScale));
전체코드
① domain에 지정하는 데이터 값이
연속된 값이면 시작값과 종료값(최대값)을 지정하면 된다.
여기서는 A, B, C 등의 문자열이기 때문에
배열(dataset)에 사용된 값 모두를 나열하여(map) 지정하였다.
range의 화면 범위를 지정하기 위해
SVG의 CSS width값을 구해서 지정하였다 (svg.style("width")).
② 바를 생성하면서(append("rect"))
바의 크기(attr-width)와 위치(attr-x)를 척도를 이용해서 지정한다.
이렇게 척도를 이용하여 차트의 크기(SVG)나
입력되는 데이터의 개수에 따라 적절한 도형(rect)이 생성되게 된다.
배열 개수를 바꿔서 확인 해보길 바란다.
③ 마지막으로 척도를 이용하여 축(axis)을 작성한다.
X축이니 화면(SVG) 바닥(bottom)에 놓고
위치는 화면의 높이(height = Height-20)가 된다.
즉, translate를 이용하여 X 좌표는 0, Y 좌표는 height인 지점에
라인을 그리고 축의 값(xScale)을 출력한다.
height에 20px을 뺀 것은 X 축의 값을 출력하는 공간을 계산한 것이다.
지금까지 사용하지 않은 그룹 개념이 사용되었다 (svgG.append("g")).
눈금(tick)은 여러 개의 선으로 구성되기 때문이다.
즉, 눈금 개수(tick count) 만큼 SVG 선(Line)이 생성된다.
이것을 간편하게 관리하기 위해 그룹으로 관리한다.
웹 브라우저의 개발자 도구(F12)로 확인하면
SVG group (X축)에 여러 개의 눈금(Line)이 있는 것을 확인할 수 있다.
![](data:image/png;base64,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)
그림을 보면 몇개의 그룹이 생성된 것을 볼 수 있다.
첫 번째 그룹(g)이 코드로 직접 생성한 것이고
(코드에 사용된 transform과 height값 280 (300-20)이 보인다.)
첫 번째 그룹 하위에 있는 그룹들은
D3에서 생성한 척도의 눈금(tick)이다.
눈금 그룹은 눈금(line)과 X축의 값(text)로 구성된 것을 볼 수 있다.
차트에 출력된 값을 보면 앞서의 예제와 다른 점이 있다.
숫자가 도형의 정중앙에 출력된다.
(이전 예제는 19, 29와 같은 두자리 숫자와 9와 같은 한자리 숫자의 출력 좌표가 안 맞다)
이전 예제는 도형의 중앙을 계산하기 어려웠지만
척도를 이용하여 간단하게 계산할 수 있다.
도형을 출력할 좌표(xScale)에 도형 크기(width)의 반(/2)을 더해주면
숫자가 찍힐 정확한 중앙 지점을 계산할 수 있다.
(위 코드에서 파란색으로 표시된 코드를 의미한다.)
SVG의 Text 테그의 text-anchor 스타일을 middle로 지정하면
지정된 좌표가 문자열의 중앙에 오도록 출력해 준다.
이번에는 다음 그림과 같이 Y축을 구현해 본다.
앞서의 코드에서 X축을 구현하기 위해
빨간색으로 표시된 코드와 같은 방식으로 구현하면 되니
직접 해본 후 진행하는 것이 좋다.
![](https://t1.daumcdn.net/cfile/tistory/215A0F3B58D7D1A508)
다음 코드를 보면 알 수 있듯이
앞서의 예제 코드에 빨간색으로 표시한 부분이
Y축을 보이기 위해 작성한 코드이다.
var svg = d3.select("svg");
var width = parseInt(svg.style("width"), 10) -30;
var height = parseInt(svg.style("height"), 10)-20;
var svgG = svg.append("g") ③
.attr("transform", "translate(30, 0)");
var yScale = d3.scaleLinear() ①
.domain([0, d3.max(dataset, function(d){ return d.y; })])
.range([height, 0]);
svgG.selectAll("rect")
.data(dataset)
.enter().append("rect")
.attr("class", "bar")
.attr("height", function(d, i) {return height-yScale(d.y)})
.attr("width", xScale.bandwidth())
.attr("x", function(d, i) {return xScale(d.x)})
.attr("y", function(d, i) {return yScale(d.y)});
svgG.selectAll("text")
.data(dataset)
.enter().append("text")
.text(function(d) {return d.y})
.attr("class", "text")
.attr("x", function(d, i) {return xScale(d.x)+xScale.bandwidth()/2})
.style("text-anchor", "middle")
.attr("y", function(d, i) {return yScale(d.y) + 15});
svgG.append("g") ②
.call(d3.axisLeft(yScale).ticks(5));
전체코드
① X축은 척도로 scaleBand를 사용한 반면,
Y축은 척도로 scaleLinear를 사용하였다.
X축의 값은 A, B, C 등의 문자열이었고,
Y축의 값은 1, 2, 3 등으로 연속된 숫자 값이다.
즉, 고정된 문자열에는 scaleBand, 일반 숫자값은 scaleLinear을 사용한다.
domain과 range는 모든 척도에서 같은 개념으로 사용된다.
다만, Y축이 숫자이기 때문에
0 부터 주어진 배열내 최대값(max(d.y))을 domain에 지정한다.
range 사용에서도 X축과 차이가 있다.
X축에서는 0부터 width로 지정했고
Y축에서는 height에서 0으로 지정했다.
즉, 큰 값이 먼저 나왔다.
X축은 A가 왼쪽, 즉 x좌표의 값이 가장 작다.
Y축은 1이 가장 하단, 즉 차트의 높이(Height) 값, 가장 큰 값을 가진다.
따라서, Y축은 domain 지정시 작은 값에서 큰 값으로
range 지정은 큰 값에서 작은 값으로 지정하여 서로 매핑 시켜준다.
② 마지막으로 X축은 axisBottom으로 하단에 축을 그리고
Y축은 axisLeft로 좌측에 축을 그린다.
다만, X축은 height값에 -20을 줘서 축의 위치를 바꾸어 줬지만
Y축은 다른 처리가 필요해서 축의 위치를 바꾸어 주지 않았다.
이것에 대한 자세한 설명은 뒤에 할 것이다.
Y축에는 척도의 개수(tick)을 5개로 지정하였다.
지정하지 않으면 D3에서 자동으로 지정한다.
③ 코드 작성이 완료 되었지만
이상의 코드에는 x축 생성할때 사용한 코드와 차이가 있다.
x축에 사용한 방식으로 Y축 코드를 작성하면
다음 표의 왼쪽처럼 작성해야 한다.
기대 되는 코드
|
현재 작성된 코드
|
svg.append("g") .attr("transform", "translate(30,0)") .call(d3.axisLeft(yScale).ticks(5)); |
var svgG = svg.append("g") .attr("transform", "translate(30, 0)"); svgG.append("g") .call(d3.axisLeft(yScale).ticks(5)); |
Y축을 이렇게 작성하면 다음 그림에서 왼쪽 하단 처럼
X축과 섞여서 이상하게 보인다.
![](data:image/png;base64,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)
이 문제를 해결하기 위해
차트 전체를 구성하는 그룹을 만들고 (svgG = svg.append("g"))
그룹 자체를 오른쪽으로 30 px 정도 이동시켜준다 (translate(30, 0)).
그리고, 차트를 위해 생성되는 도형(rect), 라벨(text), 척도등을
이전에는 svg에 생성했으나 svgG에 생성한다.
앞서 작성된 코드를 보면
X축 예제는 svg에 생성하였고, Y축 예제는 svgG에 생성하였다.
척도와 관련된 구현을 마쳤다.
데이터 개수를 추가해서 실행해 보면
그림과 같이 도형(바)의 크기가 바뀌면서 실행된 것을 볼 수 있다.
var dataset = [{x:'A', y:9 }, {x:'B', y:19}, {x:'C', y:29}, {x:'D', y:39},
{x:'E', y:29}, {x:'F', y:19}, {x:'G', y:9 }, {x:'H', y:29 }, {x:'I', y:39 }, {x:'J', y:49 }];
![](https://t1.daumcdn.net/cfile/tistory/2731B94258E2D73604)
척도를 이용하므로서,
다양한 데이터에 유동적으로 반응할 수 있는 프로그램을 제작할 수 있게 된 것이다.
이번에는 그림처럼 차트에 그리드(Grid)을 추가한다.
그리드는 값의 정확한 위치를 보여 주기 위해 사용되는 것으로
D3에서는 간단하게 구현할 수 있다.
![](https://t1.daumcdn.net/cfile/tistory/273CEA4E58D7D1A526)
구현 방법은 코드에서 보듯이
그림과 같이 차트 도형(bar) 뒤편에
축을 그릴 때 사용한 눈금(tick)을 크게 그리는 것(tickSize)이다.
따라서, 눈금의 크기를 차트 영역의
너비(width)나 높이(height)만큼 크게 그리면 된다.
<style>
~~ 생략 ~~
.grid line {
stroke: lightgrey;
stroke-opacity: 0.7;
}
</style>
<script>
~~ 생략 ~~
svgG.append("g")
.attr("class", "grid")
.attr("transform", "translate(0," + height + ")")
.call(d3.axisBottom(xScale)
.tickSize(-height)
);
svgG.append("g")
.attr("class", "grid")
.call(d3.axisLeft(yScale)
.ticks(5)
.tickSize(-width)
);
~~ 생략 ~~
전체코드
X축의 그리드 선은
지정된 X좌표에 0부터 높이(height)까지 이어진 선이다.
따라서, X축의 그리드 선은 0부터 높이,
Y축의 그리드 선은 0부터 너비까지가 된다.
여기에 더 고려해야 할 것은 마이너스(-) 값이란 것이다.
X축의 경우 바닥(axisBottom)에 선을 그리기 때문
현재 그리는 기준이 바닥(height)이다.
즉, 바닥(height)이 0이되니, 0부터 –height까지 그려야 한다.
Y축은 왼쪽(axisLeft)을 기준으로 설정했기 때문에
축의 왼쪽은 플러스(+) 값, 오른쪽은 마이너스(-) 값으로 지정해서 그린다.
작성된 그리드 선에 대한 효과는 CSS로 지정한다 (.attr("class", "grid")).
CSS에서 선의 색상(stroke)을 회색(lightgrey)으로 지정하고
선의 투명도(stroke-opacity)를 70%(0.7)로 잘 안보이게 해서
차트 도형을 보는데 지장이 없게 했다.
그리드와 관련해서 마지막으로 정리 할 것은
그리드의 작성된 코드가 차트 도형을 생성하기 전에 있어야 한다.
그리드의 작성된 코드가 차트 도형보다 앞에 있어야
그림과 같이 선 위에 도형이 놓이게 된다.
(그리드가 배경처럼 보이게 된다)
반대의 경우에는 도형 위에 선이 놓여
선이 더 중요하게 강조되는 것처럼 보이게 된다.
문제: 앞의 그림을 보면 도형의 값(label)이 사라졌다.
다시 보이게 할 방법은 무엇일까?
마지막으로 구현해볼 기능은 툴팁(tooltip) 기능으로,
그림과 같이 차트 도형(바)에 마우스를 올리면
별도의 작은 창에 관련 데이터를 보여주는 기능을 구현한다.
![](https://t1.daumcdn.net/cfile/tistory/225E9F4D58D7D1A507)
이 기능을 구현하는 방법은
다음 문장을 그대로 코드로 작성하면 된다.
차트 도형에 마우스를 올리면(mouseover) 보이고,
도형에서 마우스가 벗어나면(mouseout) 안보이게 구현 한다.
마우스가 도형에 올라있는 동안은 마우스를 따라다니면서(mousemove)
마우스 근처에 작은 창(rect)을 하나 보여준다.
작은 창은 해당 도형의 데이터 값(Y 값)을 출력한다.
var barG = svgG.append("g");
barG.selectAll("rect")
.data(dataset)
.enter().append("rect")
.attr("class", "bar")
.attr("height", function(d, i) {return height-yScale(d.y)})
.attr("width", xScale.bandwidth())
.attr("x", function(d, i) {return xScale(d.x)})
.attr("y", function(d, i) {return yScale(d.y)})
.on("mouseover", function() { tooltip.style("display", null); })
.on("mouseout", function() { tooltip.style("display", "none"); })
.on("mousemove", function(d) {
var xP = d3.mouse(this)[0];
var yP = d3.mouse(this)[1] - 25;
tooltip.attr("transform", "translate(" + xP + "," + yP + ")");
tooltip.select("text").text(d.y);
});
barG.selectAll("text");
var tooltip = svg.append("g")
.attr("class", "tooltip")
.style("display", "none");
tooltip.append("rect")
.attr("width", 30)
.attr("height", 20)
.attr("fill", "white");
tooltip.append("text")
.attr("x", 15)
.attr("dy", "1em")
.style("text-anchor", "middle");
전체코드
이 문장 다시 코드로 작성하면
툴팁은 rect(배경, 선등)와 text(값출력)로 구성된
tooltip이라는 SVG 그룹 태그로 (var tooltip = svg.append("g"))
평소에는 눈에 보이지 않는다 (display: "none").
이 tooltip은 도형의
mouseover 이벤트에서 display 값을 지워서(빈문자열) 보이게 하고
mouseout 이벤트에서 display 값을 none로 해서 보이지 않게 한다.
mousemove에서는 현재 마우스의 좌표(xP, yP)을 구해서
tooltip의 위치를 지정하고 값을 출력한다.
구해진 좌표값에 적절한 계산(-20)을 해서
툴팁이 마우스에 가려지지 않게 했다.
앞서 제시한 문제에서 도형의 값(label)이 사라진 문제를 제시하였다.
해결 방법은 위 코드에 사용된 barG 변수이다.
앞서의 예제에서는 svgG에 모든 기능을 구현했다.
이번 예에서는 그리드/척도(svgG)와
챠트 도형의 그룹(barG)을 다르게 작성했다.
하나의 그룹에 많은 개체가 있어서 위치 충돌이 있는 것으로 추측한다.(정확한 이유를 아는 분은 댓글을)
이번에는 툴팁을 DIV로 구현해 본다.
개인적으로 rect와 같은 SVG 도형들이 덜 익숙한 것도 있고
보기 좋게 구현하는 것이 다소 어렵게 느껴져서
CSS로 간편하게 지정하는 DIV를 선호한다.
.toolTip {
position: absolute;
border: 0 none;
border-radius: 4px 4px 4px 4px;
background-color: white;
padding: 5px;
text-align: center;
font-size: 11px;
}
~~ 생략 ~~
barG.selectAll("rect")
.data(dataset)
.enter().append("rect")
.attr("class", "bar")
.attr("height", function(d, i) {return height-yScale(d.y)})
.attr("width", xScale.bandwidth())
.attr("x", function(d, i) {return xScale(d.x)})
.attr("y", function(d, i) {return yScale(d.y)})
.on("mouseover", function() { tooltip.style("display", null); })
.on("mouseout", function() { tooltip.style("display", "none"); })
.on("mousemove", function(d) {
tooltip.style("left", (d3.event.pageX+10)+"px");
tooltip.style("top", (d3.event.pageY-10)+"px");
tooltip.html(d.y);
});
barG.selectAll("text")
var tooltip = d3.select("body").append("div").attr("class", "toolTip").style("display", "none");
전체코드
다음 코드와 같이 D3의 append로 생성하고
toolTip이라는 CSS 클래스를 지정한다.
해당 클래스에서 CSS 속성으로 원하는 데로 지정하면 된다.
여기서는 툴팁 도형을 일반 사각(rect)이 아닌
모서리가 둥근 사각형으로 구현했다.
SVG Rect는 좌표(x, y)로 위치를 지정했지만
DIV는 left와 right 값으로 지정하고
위치 값도
SVG Rect는 SVG 내에서 위치로 지정했지만
DIV는 부모가 문서(body)이므로
문서 기준(pageX, pageY)으로 구현하였다.
문제 D3에서 척도는 매우 활용이 많고 중요한 클래스이다. 이 척도를 잘 이용하면 다양한 기능을 구현 할 수 있는데,
척도를 이용해서 각 도형의 색깔을 모두 다르게 부여하는 기능을 직접 구현해 본다. ![](data:image/png;base64,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)
전체코드 |