0
我想在D3中用多行路徑製作時間順序的折線圖。我想將文本標籤應用於這些路徑。d3帶標籤的多行
我目前正在做的是使用效用函數根據數據的屬性(plotProps
,它們是我的json數據中的鍵值)製作幾個d3.svg.line
元素。這裏
function makeLine(prop){
return d3.svg.line()
.x(function(d){ return x(d.date); })
.y(function(d){ return y(d[prop]); });
}
var plotProps = ['registered','subscribers','total','anonymous'];
plotProps.forEach(function(prop){
line = makeLine(prop);
svg.append("path")
.datum(graph_data)
.attr("class", "line datapath")
.attr("d", line)
.attr('prop',prop)
.style('text-anchor','middle');
svg.append('svg:text')
.attr('class','label')
.attr("y", "")
.attr("x", "")
.attr("dy", ".71em")
.style("text-anchor", "end")
.text('foobar');
});
我的做法感覺真的違反直覺D3的數據連接方式,在我行代不兼容應該數據源是動態的。我似乎無法讓標籤正常顯示。大多數示例使用添加到g元素的標籤 - 我應該將它們添加到我的案例的路徑(每行上面的文本)?將函數傳遞給我添加的文本元素的x,y attrs時,在記錄參數時不會在控制檯中輸出任何內容。
有沒有辦法生成多行代碼,這些代碼可以讓我鏈接這些標籤調用?我希望我已經清楚了。