2013-06-05 103 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()的情況下,可以將字符串轉換爲數字,以便正確完成數學計算。

相關問題