Преобразование данных для работы с d3, рисование нескольких строк

У меня есть такой набор данных

[[[{"2001-1":{"cow":2.64,"dog":2.90,"Lemur":0.0,"Lion":2.77,"Tiger":2.31,"bird":3.21}}]],
[[{"2002-3":{"cow":2.54,"dog":2.67,"Lemur":0.0,"Lion":2.93,"Tiger":0.0,"bird":0.0,}}]]] 

Первый массив — это значения X, а второй набор — это значения Y. Как я могу создать график, где каждый ключ представлен в виде линии. В частности, как мне преобразовать данные в приемлемый формат, с которым сможет работать D3?

я пробовал это

var w=400,h=200;
var x=d3.scale.linear().domain([0,dataset.length]).range([0,4]);
var y=d3.scale.linear().domain([0,d3.max(dataset)]).rangeRound([0,h]);
var entries=d3.entries(dataset);
var colors = d3.scale.category20().domain(d3.keys(dataset));
var line=d3.svg.line().interpolate("basis")
        .x(function(d){return x(d.range);})
        .y(function(d){return x(d.range);});

var svg=d3.select("#p-graph")
    .append("svg:svg")
    .attr("width", w)
    .attr("height", h);

        svg.selectAll(".line")
            .data(entries)
            .enter().append("path")
            .attr("class", "line")
            .attr("d",function(d){return line(d.value);})
            .attr("stroke",function(d){return colors(d.key);});

но я ничего не показывает в выводе. Что я делаю не так?

Обновлять

Каждое животное должно представлять одну линию на графике.


person user1819688    schedule 02.05.2013    source источник
comment
Можете ли вы уточнить, как вы хотите сопоставить данные с линией. Каждая линия будет представлять одно животное?   -  person minikomi    schedule 02.05.2013
comment
Этот вопрос должен помочь.   -  person Lars Kotthoff    schedule 02.05.2013
comment
@minikomi: Да, каждая строка будет представлять одно животное.   -  person user1819688    schedule 02.05.2013