2014-01-23 2 views
1

Я не смог сделать рендер линейной диаграммы с правильным масштабом, и документация практически не существует для nvd3. Он делает нормально, если я использую только первый набор значений (с ключом «Успех»).График не соответствует правильной шкале с NVD3

У меня есть пример демо здесь: http://jsfiddle.net/LBqk3/1/

И в/прикрепленные данных образца кода:

nv.addGraph(function() { 
    var chart = nv.models.lineChart(); 

    chart.xAxis.axisLabel('Requests') 
     .tickFormat(function (d) { 
     return d3.time.format('%d %b')(new Date(d)); 
    }); 

    var y = d3.scale.linear() 
     .range([400, 400]); 

    chart.yAxis.axisLabel('Amount') 
     .scale(y) 
     .tickFormat(d3.format('.2f')); 

    d3.select('#chart svg') 
     .datum([{ 
     "values": [{ 
      "x": 1387893600000, 
      "y": "170" 
     }, { 
      "x": 1387980000000, 
      "y": "416" 
     }, { 
      "x": 1388066400000, 
      "y": "743" 
     }, { 
      "x": 1388152800000, 
      "y": "633" 
     }, { 
      "x": 1388239200000, 
      "y": "500" 
     }, { 
      "x": 1388325600000, 
      "y": "604" 
     }, { 
      "x": 1388412000000, 
      "y": "683" 
     }, { 
      "x": 1388498400000, 
      "y": "485" 
     }, { 
      "x": 1388584800000, 
      "y": "509" 
     }, { 
      "x": 1388671200000, 
      "y": "677" 
     }, { 
      "x": 1388757600000, 
      "y": "610" 
     }, { 
      "x": 1388844000000, 
      "y": "607" 
     }, { 
      "x": 1388930400000, 
      "y": "538" 
     }, { 
      "x": 1389016800000, 
      "y": "596" 
     }, { 
      "x": 1389103200000, 
      "y": "609" 
     }, { 
      "x": 1389189600000, 
      "y": "581" 
     }, { 
      "x": 1389276000000, 
      "y": "503" 
     }, { 
      "x": 1389362400000, 
      "y": "524" 
     }, { 
      "x": 1389448800000, 
      "y": "515" 
     }, { 
      "x": 1389535200000, 
      "y": "580" 
     }, { 
      "x": 1389621600000, 
      "y": "592" 
     }, { 
      "x": 1389708000000, 
      "y": "573" 
     }, { 
      "x": 1389794400000, 
      "y": "597" 
     }, { 
      "x": 1389880800000, 
      "y": "717" 
     }, { 
      "x": 1389967200000, 
      "y": "2760" 
     }], 
     "key": "Missed" 
    }]) 
     .transition() 
     .duration(500) 
     .call(chart); 

    nv.utils.windowResize(chart.update); 

    return chart; 
}); 
+0

Похоже, что ваши значения y - это строки, а не числа. Это ваше намерение? –

+0

Вы правы, я просто понял, что это проблема, и теперь она исправлена. Даже не осознавал это в моем наборе данных сначала – Martin

+0

Не стесняйтесь публиковать его в качестве ответа, я согласен – Martin

ответ

2

Проблема заключается в том, что ваши значениях у являются строками, и вы относиться к ним как числа. Замена

"y": "604" 

с

"y": 604 

и так далее для всех значений должно решить проблему.

+0

Я не могу поблагодарить вас за это – misterManager

Смежные вопросы