-1
我嘗試在JavaScript中創建基於D3庫的圖形。我看到很多橢圓的例子,但不是分成8部分。我發現了這一個,但對我來說很難找出一個新的。如何在基於JavaScript D3的八個部分中創建基於SVG拆分的Ellipse對象?
enter code here
的想法是基於數據表中的標識或將不同的顏色在具有圍繞perimiter一個失敗狀態的部分。
例IMG:
我嘗試在JavaScript中創建基於D3庫的圖形。我看到很多橢圓的例子,但不是分成8部分。我發現了這一個,但對我來說很難找出一個新的。如何在基於JavaScript D3的八個部分中創建基於SVG拆分的Ellipse對象?
enter code here
的想法是基於數據表中的標識或將不同的顏色在具有圍繞perimiter一個失敗狀態的部分。
例IMG:
可以繪製使用標準d3.arc然後縮放容器的電弧以使其顯示爲一個橢圓:
<!DOCTYPE html>
<html>
<head>
<script data-require="[email protected]" data-semver="4.0.0" src="https://d3js.org/d3.v4.min.js"></script>
</head>
<body>
<script>
var svg = d3.select('body')
.append('svg')
.attr('width', 500)
.attr('height', 300)
.append('g')
.attr('transform', 'translate(250,150)scale(1.6,1)');
var step = (2 * Math.PI)/8,
data = d3.range(0, 2 * Math.PI , step).map(function(d){
return {
s: d,
e: d + step,
f: Math.random() > 0.5 ? true : false
};
});
svg.selectAll("path")
.data(data)
.enter()
.append("path")
.attr("d", function(d){
return d3.arc()({
innerRadius: 0,
outerRadius: 150,
startAngle: d.s,
endAngle: d.e
});
})
.style("fill", function(d,i){
return d.f ? "red" : "gray";
})
.style("stroke", "black");
</script>
</body>
</html>