2013-06-05 54 views
0

我正在使用NVD3制作多个图形。我在addGraph函数中添加了一个console.log,它添加了一个特定的图形。脚本功能在Chrome中运行一次,但在Firefox中运行正常

我想知道在我的代码中是否有错?我正确使用库吗?我不知道从哪里开始解决这个问题。

FIREFOX(所有的图表都显示正常)

共有444 添加图表这里称为

共有518 添加图表这里称为

共有572 添加图形称为这里

总计553 在此处调用添加图

共有617 添加图表这里称为

共有595 添加图表这里称为

谷歌chrome

总NaN的

总NaN的

总的NaN

总的NaN

总的NaN

添加图形在这里称为 总108

总138

总145

总146

CODE

调用脚本

<script src="../../../data/novus/lib/d3.v2.js"></script> 
<script src="../../../data/novus/nv.d3.js"></script> 
<script src="../../../data/novus/src/tooltip.js"></script> 
<script src="../../../data/novus/src/models/legend.js"></script> 
<script src="../../../data/novus/src/models/axis.js"></script> 
<script src="../../../data/novus/src/models/scatter.js"></script> 
<script src="../../../data/novus/src/models/line.js"></script> 
<script src="../../../data/novus/src/models/multiChart.js"></script> 

在循环

<script src="../../../data/novus/nv.d3.js"></script> 
<script> 
    var impressions = []; 
    var clickrate = []; 
    var trial_impressions = []; 
    var trial_clickrate = []; 
    var testdata = [{ 
     "key" : "Impressions", 
     "type" : "line", 
     "values" : impressions, 
     "yAxis" : 1 
    }, { 
     "key" : "Clicks", 
     "type" : "line", 
     "values" : clickrate, 
     "yAxis" : 2 
    }, { 
     "key" : "T Impressions", 
     "type" : "line", 
     "values" : trial_impressions, 
     "yAxis" : 1 
    }, { 
     "key" : "T Clicks", 
     "type" : "line", 
     "values" : trial_clickrate, 
     "yAxis" : 2 
    }].map(function(series) { 
     series.values = series.values.map(function(d) { 
      return { 
       x : d[0], 
       y : d[1] 
      } 
     }); 
     return series; 
    }); 
    var chart; 

    nv.addGraph(function() { 
     console.log("Add"); 
     chart = nv.models.multiChart().margin({ 
      top : 30, 
      right : 60, 
      bottom : 50, 
      left : 70 
     }).x(function(d, i) { 
      return i 
     }).color(d3.scale.category10().range()); 

     chart.xAxis.tickFormat(function(d) { 
      var dx = testdata[0].values[d] && testdata[0].values[d].x || 0; 
      if (typeof (dx) == undefined || d > 1000) { 
       dx = new Date(d); 
      } else { 
       dx = new Date(dx); 
      } 
      return dx ? d3.time.format('%x')(dx) : ''; 
     }); 

     chart.yAxis1.tickFormat(d3.format(',.1f')); 
     v 

     chart.yAxis2.tickFormat(d3.format(',.4f')); 

     d3.select('#chart1<?= $chartID?> svg').datum(testdata).transition().duration(500).call(chart); 
     return chart; 
    }); 

</script> 

在图形称为

<div id='chart1<?= $chartID?>' style="width:1110px;height:300px;font-size:11px;margin-top:5px"> 
    <svg></svg> 
</div> 
+2

该代码可以帮助很多。 – gkovacs90

+0

您需要发布您用于生成这些结果的代码 - 否则我们不知道您是否做错了任何问题 – sjmarshy

+0

好的,会做 – Siva

回答

1

我最好的猜测是,有这些数字的数学计算股利。在女巫使用函数parseFloat()的情况下,可以将字符串转换为数字,以便正确完成数学计算。

相关问题