我无法弄清楚如何设置d3符号的大小:
legendRectE
.append('path')
.attr("d", d3.svg.symbol().type((d) => { return d[2] }))
.style("fill", function (d) {
return d[1];
})
.attr('stroke', 'black')
;
我试图像这样使用.size()
,但它不起作用:
legendRectE
.append('path')
.attr("d", d3.svg.symbol().type((d) => { return d[2] }))
.style("fill", function (d) {
return d[1];
})
.attr('stroke', 'black')
.size(20*20)
;
当我尝试使用.size()
时,我收到错误:[ts] Supplied parameters do not match any signature of call target.
那么在这种情况下如何设置符号的大小?
答案 0 :(得分:7)
您必须在符号生成器(size
函数)中定义d3.svg.symbol
:
d3.svg.symbol().size(size).type(foo);
//size here-----------^
这是一个演示:
var svg = d3.select("svg");
var sizes = ["10", "50", "100", "200", "500", "1000", "2000"];
sizes.forEach((d, i) => {
svg.append('path')
.attr("transform", "translate(" + (10 + (i+1) * (i+1) * 5) + ",100)")
.attr("d", d3.svg.symbol().size(d).type("diamond"))
.style("fill", "gold")
.attr('stroke', 'black');
});
<script src="https://d3js.org/d3.v3.js"></script>
<svg></svg>