我使用d3.js使用以下代码创建了一个圆环图,要求是使用来自后端的颜色显示为圆环图而不是使用d3.scale.category**()'s
中的内置颜色
<script>
var width = 260,
height = 150,
radius = Math.min(width, height) / 2;
var color = d3.scale.category20();
var domain = ["bbb", "ddd", "ccc", "23", "hello"];
var pie = d3.layout.pie()
.value(function(d) { return d.apples; })
.sort(null);
var arc = d3.svg.arc()
.innerRadius(radius - 10)
.outerRadius(radius - 2);
var svg = d3.select("body").append("svg")
.attr("width", width)
.attr("height", height)
.attr("style","left: 480px;top: 120px;position: absolute;")
.append("g")
.attr("transform", "translate(" + width / 2 + "," + height / 2 + ")");
d3.tsv("data.tsv", function(error, data) {
var path = svg.datum(data).selectAll("path")
.data(pie)
.enter().append("path")
.attr("fill", function(d, i) { console.log(color(i)); return color(i); })
.attr("d", arc);
});
</script>
使用自己的托盘组合从后端或数组或类似的方式覆盖颜色的任何方法: var colors = [&#34;#1f77b4&#34;,&#34;#ff7f0e&#34;,&#34;#2ca02c&#34;,&#34;#d62728&#34;,&#34;#9467bd& #34;,&#34;#8c564b&#34;,&#34;#e377c2&#34;,&#34;#7f7f7f&#34;,&#34; #bcbd22&#34;,&#34;#17becf& #34;];
提前致谢!