d3.js에서 정기적으로 데이터 세트를 읽고 svg를 다시 표시합니다.
remove 처리를 넣지 않으면, 쭉쭈쭈쭉 도형이 검게 갑니다. .
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Line Chart</title>
<style>
svg {
width: 380px;
height: 240px;
border: 1px solid skyblue;
}
.line {
fill: none;
stroke: black;
}
.axis text {
font-family: sans-serif;
font-size: 11px;
}
.axis path,
.alis line {
fill: none;
stroke: black;
}
.axis_x line {
fill: none;
stroke: black;
}
</style>
<script src="http://d3js.org/d3.v3.min.js" charset="utf-8"></script>
</head>
<body>
<h1>Line Chart</h1>
<svg id="myGraph"></svg>
<script src="js/line_chart.js"></script>
</body>
</html>
line_chart.js
var svgWidth = 320;
var svgHeight = 240;
var offsetX = 30;
var offsetY = 20;
var scale = 2.0;
var dataSet1 = [10, 47, 65, 8, 64, 99, 75, 22, 63, 80];
var dataSet2 = [10, 48, 67, 18, 74, 20, 80, 22, 63, 80];
var margin = svgWidth / (dataSet1.length - 1);
var t = 0;
var x = 0;
var yScale = d3.scale.linear()
.domain([0, 100])
.range([scale * 100, 0])
d3.select("#myGraph")
.append("g")
.attr("class", "axis")
.attr("transform", "translate(" + offsetX + ", " + offsetY + ")")
.call(
d3.svg.axis()
.scale(yScale)
.orient("left")
)
d3.select("#myGraph")
.append("rect")
.attr("class", "axis_x")
.attr("width", svgWidth)
.attr("height", 1)
.attr("transform", "translate(" + offsetX + ", " + (svgHeight - offsetY - 0.5) + ")")
function draw(dataSet) {
var line = d3.svg.line()
.x(function(d, i) {
return offsetX + i * margin;
})
.y(function(d, i) {
return svgHeight - (d * scale) - offsetY;
})
.interpolate("basis")
var lineElements = d3.selectAll("#myGraph")
.append("path")
.attr("class", "line")
.attr("d", line(dataSet))
}
d3.timer(function() {
if (t > 1.0) {
console.log(t);
t = 0
x += 1;
if (x % 2 == 0) {
d3.selectAll("path").remove();
draw(dataSet1)
} else {
d3.selectAll("path").remove();
draw(dataSet2)
}
}
t += 0.02;
아래와 같은 그림이 번갈아 반복됩니다. 오.
Reference
이 문제에 관하여(d3.js에서 정기적으로 데이터 세트를 읽고 svg를 다시 표시합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/letusfly85/items/73ed9c5ca3ba4195a192텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)