1
メンテナンスのためにコードを分離しようとしていますが、何か問題があります。 d3にはセクションを変数に割り当てるという規則があります。私は次のコードでそれをしようとしていますが、私は 'mypaths.attr関数エラーではありません'を取得します。これを引き起こしているのは何ですか?d3.js mypathsは関数ではありません
/コード/
var svgContainer = d3.select("body").append("svg")
.attr("width", svgWidth)
.attr("height", svgHeight)
.attr("viewBox", svgViewBox)
.attr("preserveAspectRatio", "xMinYMin meet")
.call(d3.zoom().on("zoom", function() {
svgContainer.attr("transform", d3.event.transform)
}))
.append("g");
var mypaths = d3.json("myJSONURL.com", function(err,data) {
if(err) console.log(err);
svgContainer.selectAll("path")
.data(data)
.enter()
.append("path");
});
var styles = mypaths
.attr("id", function (d) { return d.id; })
.attr("d", function (d) { return d.d; })
.style("fill", "#FFFFFF")
.style("stroke", "#1C1C1C")
.style("stroke-width", "3px")
.style("stroke-linecap", "round")
.on("mouseover", handleMouseOver)
.on("mouseout", handleMouseOut)
.on("click", handlePathClick);
私が欲しいものは、属性からデータ・ラインを分離することです。この場合、私はこれを行うことができます:var circle = svgContainer.selectAll( "circle") .data(jsonCircles) .enter() .append( "circle"); VaRのcircleAttributesの=サークル .ATTR( "CX"、関数(D){d.x_axisを返す;}) .ATTR( "CY"、関数(D){d.y_axisを返す;}) .ATTR( ( "fill"、function(d){return d.color;}); "r"、function(d){return d.radius;});。 – Tf11