1

我正在尝试使用基于d3.js的库d3-timeseries创建时间序列图。我正在使用作者在我的JSP脚本标记中提到的实现,但我什么也没有得到。任何帮助表示赞赏。使用基于d3.js的制图库

我的代码:

//data : 

    // [{date:new Date('2013-01-01'),n:120,n3:200},...] 

    var chart = d3.timeseries() 
        .addSeries(data,{x:'date',y:'n',diff:'n3'}, 
        {interpolate:'monotone',color:"#333"}).width(900) 


chart('#chart') 

回答

0

要使用这个库,你需要执行未很好地记录任何地方只有几步之遥。

  1. 下载ZIP
  2. 安装bower,如果你不已经
  3. bower install在这个目录里
  4. 邮编将包含一个src文件夹d3_timeseries.jsd3_timeseries.css环节他们都到HTML文件

样本指数。 html文件,如果在解压缩的文件夹中使用该文件:

<html> 
<head> 
<script src="bower_components/d3/d3.min.js"></script> 
<script src="src/d3_timeseries.js"></script> 
<link href="src/d3_timeseries.css" rel="stylesheet" type="text/css"> 

</head> 
<body> 
    <div class="chart" id="chart3"></div> 
</body> 
    <script> 

     var data = createRandomData(80,[0,1000],0.01) 


     var chart3 = d3.timeseries() 
        .addSerie(data,{x:'date',y:'n',diff:'n3'},{interpolate:'monotone',color:"#333"}) 
        .width(900) 

     chart3('#chart3') 



     function createRandomData(n,range,rand) 
     { 
     if(range==null) 
     range=[0,100] 
     if(rand==null) 
     rand=1/20 

     var num = range[0] + Math.floor(Math.random()*(range[1]-range[0])) 
     var num2 = range[0] + Math.floor(Math.random()*(range[1]-range[0])) 
     var num3 = num 
     var d= new Date('2013-01-01') 
     var data = [] 
     var rgen = d3.random.normal(0,(range[1]-range[0])*rand) 
     for (var i = 0; i<n; i++) 
     { 

     data.push({date:d,n:num,n2:num2,n3:num3, 
       ci_up:num3*1.05,ci_down:num3*0.95 
     }) 
     d = new Date(d.getTime() + 1000*60*60*24) 
     num = num+rgen() 
     num3 = num+rgen()/3 
     num = Math.min(Math.max(num,range[0]),range[1]) 
     num2 = num2+rgen() 
     num2 = Math.min(Math.max(num2,range[0]),range[1]) 



     } 
     return data; 
     } 

     </script> 
</html> 
+0

非常感谢您的支持lution。但是,我正在构建一个Web应用程序并使用JSP。我的实现的问题是我使用d3.js的第4版,并通过JavaScript调试时,我得知问题是当调用.scale(axis)函数时。因此,经过小小的研究发现该功能在3.5.12版本中可用。所以当我将d3.js文件3.5.12替换为该版本时,它工作正常! – Ash

+0

@ash不客气。是啊,如果你看看bower.json,他已经锁定它的版本。所以这是与我的回答有所不同的一步。你分别下载了我安装了bower的d3js库。如果你接受了答案,这将是很好的:) –