2015-12-04 47 views
0

路徑的「ID」想這是我的數據如何指定在Nvd3

data = [ 
     { 
     "key": "Series1", 
     "values": [ [ 1125409600000 , 0] , [ 1228088000000 , 50]] 
     }, 
     { 
     "key": "Series2", 
     "values": [ [ 1025409600000 , 10] , [ 1028088000000 , 50]] 
     } 
] 

我使用Nvd3繪製折線圖。所以根據上面給出的數據,我應該有兩行。

nv.addGraph(function() { 
    var chart = nv.models.lineWithFocusChart(); 
    d3.select('#chart svg') 
     .datum(data) 
     .transition().duration(500) 
     .call(chart); 
     nv.utils.windowResize(chart.update); 
     return chart; 
}); 

我可以很容易地做到這一點,我的代碼工作。繪製圖表後,圖表上的每一行都是DOM中的路徑。我正在嘗試將每個KEY值分配爲相應路徑的ID。例如,繪製圖後,我想有這樣的事情

<path id="Series1" ..... > 
    <path id="Series2" ..... > 

有誰知道如何做到這一點?

+0

包含路徑組具有的答覆所需的ID – baklazan

+0

@baklazan感謝。我不確定我是否理解你的答案。包含路徑的組有一個id,我不確定它來自哪裏。我想分配一個id給路徑,以便我可以根據自己的邏輯選擇路徑。 –

回答

0

正如他在評論@baklazan狀態,路徑周圍的基團具有nv-series-0nv-series-1,等等...如果你可以只使用和得到這樣相應的路徑:

var series1Path = d3.select('.nv-series-0>path'); 

如果你真的想id他們:

d3.select('.nv-series-0>path') 
    .attr('id','Series1); 
+0

謝謝馬克。讓我澄清我的目標。我有一個csv文件,我正在閱讀它並繪製折線圖。每條線都顯示一名足球運動員,我想將每個名稱分配給包含路徑的組。因此,我可以稍後參考該特定行,並突出顯示它等。在d3中,我可以在繪製線條時指定它,但是當我繪製線條時,nvd3不會提供該訪問權限。當然,我可以檢索'.nv-series-0>路徑',但我不知道它指向哪個播放器。 –

+0

@BahadorSaket,唯一想到的是,'nvd3'不會重新排序你的數據,所以你可以通過索引來完成。搜索數據,找到該玩家名稱的索引,然後選擇'd3.select('。nv-series - '+ index +'> path');'我不知道如何讓'nvd3'獲得id或在繪畫時對你的系列進行分類 – Mark