D3.js는 데이터 시각화 작업을 위한 강력한 JavaScript 라이브러리입니다. 이 라이브러리를 사용하면 다양한 종류의 차트와 그래프를 생성할 수 있습니다. 이번 포스트에서는 D3.js를 사용하여 데이터를 시각화하고, 다양한 차트를 생성하는 방법에 대해 알아보겠습니다.
1. D3.js 설치 및 기본 설정
D3.js를 사용하기 위해서는 먼저 해당 라이브러리를 다운로드하고 HTML 파일에 포함해야 합니다. 다음은 D3.js를 설치하는 방법입니다.
<script src="https://d3js.org/d3.v6.min.js"></script>
위 코드를 HTML 파일의 <head>
태그 안에 추가하면 D3.js를 사용할 수 있습니다.
2. 데이터 시각화를 위한 준비
D3.js를 사용하여 데이터를 시각화하려면 시각화할 데이터의 형식을 알아야 합니다. D3.js는 JSON 형식의 데이터를 주로 사용하며, 데이터셋의 각 항목에는 특정 속성이 포함되어야 합니다.
예를 들어, 다음과 같은 JSON 데이터를 시각화하려고 한다고 가정해봅시다.
[
{"name": "Apple", "price": 1200},
{"name": "Banana", "price": 800},
{"name": "Orange", "price": 1000},
{"name": "Grapes", "price": 1500}
]
3. 바 차트 생성하기
D3.js로 가장 간단한 차트인 바 차트를 생성해보겠습니다. 바 차트는 데이터의 크기를 막대의 길이로 표현하는 차트입니다.
// SVG 요소의 너비와 높이 설정
const width = 500;
const height = 300;
// 데이터셋
const dataset = [1200, 800, 1000, 1500];
// X축의 스케일 설정
const xScale = d3.scaleBand()
.domain(d3.range(dataset.length))
.rangeRound([0, width])
.paddingInner(0.05);
// Y축의 스케일 설정
const yScale = d3.scaleLinear()
.domain([0, d3.max(dataset)])
.range([height, 0]);
// SVG 요소 생성
const svg = d3.select("body")
.append("svg")
.attr("width", width)
.attr("height", height);
// 막대 생성
svg.selectAll("rect")
.data(dataset)
.enter()
.append("rect")
.attr("x", (d, i) => xScale(i))
.attr("y", d => yScale(d))
.attr("width", xScale.bandwidth())
.attr("height", d => height - yScale(d))
.attr("fill", "steelblue");
위 코드를 실행하면 SVG 요소에 바 차트가 생성됩니다.
4. 원 차트 생성하기
D3.js를 사용하여 원 차트를 생성하는 방법은 다음과 같습니다.
// SVG 요소의 너비와 높이 설정
const width = 500;
const height = 300;
// 데이터셋
const dataset = [1200, 800, 1000, 1500];
// 색상 설정
const color = d3.scaleOrdinal()
.range(["#ff0000", "#00ff00", "#0000ff", "#ffff00"]);
// 아크 생성
const arc = d3.arc()
.innerRadius(0)
.outerRadius(Math.min(width, height) / 2);
// Pie 생성
const pie = d3.pie();
// SVG 요소 생성
const svg = d3.select("body")
.append("svg")
.attr("width", width)
.attr("height", height)
.append("g")
.attr("transform", `translate(${width / 2}, ${height / 2})`);
// 파이 차트 생성
svg.selectAll("path")
.data(pie(dataset))
.enter()
.append("path")
.attr("d", arc)
.attr("fill", (d, i) => color(i));
위 코드를 실행하면 SVG 요소에 원 차트가 생성됩니다.
결론
D3.js를 사용하면 다양한 종류의 차트를 생성하고 데이터를 시각화할 수 있습니다. 이번 포스트에서는 D3.js를 사용하여 바 차트와 원 차트를 생성하는 방법을 알아보았습니다. D3.js에는 많은 기능과 유용한 메소드가 있으니, 자세한 내용은 공식 문서를 참고해보세요. #D3js #데이터시각화