2016-12-21 10 views
0

複数行の系列図で2行のデータを2列に持つcsvがあります。値の異なる複数の行をプロットする

データは、このようなものです:あなたが見ることができるように、データを2つの列にオーバーマップされませんが、私は2つの行が同じグラフになりたい

date,Presidential Approval,Congressional Approval 
1/11/09,,39 
2/8/09,64, 
3/12/09,59, 
4/6/09,61, 
4/21/09,,49 
4/21/09,63, 
6/14/09,61, 

このように2つの時系列でenterメソッドを使用する方法はありますか?

あなたは、古典的なD3は、パターン入力を使用する場合:

var lines = svg.selectAll(".lines") 
     .data(data_array) 
     .enter() 
     .append('g') 
     .attr('data-name', function(d,i) { return d.name; }) 
     .attr('class','lines'); 

    lines 
     .append("path") 
     .attr("d", function(d) { return line(d.values); }) 
     .style("stroke-width", 4.75); 

それは空の値について0値を返します。私はそれらをスキップし、各行のポイント間を補間したいと思います。私はこれを行うには見つけ

答えて

1

ベストな方法は、ネストの段階で事前に自分のデータをフィルタリングすることでした:

var data_array = keys.map(function(name) { 
     return { 
     name: name, // values > 0 will be excluded 
     values: data.filter(function(d) { return +d[name] > 0 }).map(function(d) { 
      return {date: d.date, poll: +d[name]}; 
     }) 
     }; 
    }); 
関連する問題