2015-02-06 66 views
0

时间跳我有SOI值每隔一个月一个非常基本的时间序列数据集从1950年到1995年 日期SOI在酒窝线图形

1-Dec-94 2.993 
1-Nov-94 1.293 
1-Oct-94 -1.006 
1-Sep-94 -0.80696 
1-Aug-94 -1.406 
1-Jul-94 -0.20696 
1-Jun-94 -2.006 
1-May-94 -0.90696 
1-Apr-94 -1.806 
1-Mar-94 -2.006 
1-Feb-94 -1.306 
1-Jan-94 -1.306 
1-Dec-93 -1.706 
1-Nov-93 -1.506 
1-Oct-93 0.29374 
1-Sep-93 -0.60696 
1-Aug-93 1.2937 

那是什么样子。

我想创建一个简单的基于Dimple的线条图形。这是我的代码:

<div id="chartContainer"> 
    <script type="text/javascript" src="d3.min.js"></script> 
    <script src="http://dimplejs.org/dist/dimple.v2.1.2.min.js"></script> 
// This loads in dimple and d3 libraries 
    <script type="text/javascript"> 
    var svg = dimple.newSvg("#chartContainer", 1000, 600); 
    d3.csv("SOI_data.csv", function (data) { 
     var myChart = new dimple.chart(svg, data); 
     myChart.setBounds(60, 30, 800, 550); 
     var x = myChart.addTimeAxis("x", "date", "%d-%b-%y", "%b-%y"); 
     x.addOrderRule("date"); 
     x.timeInterval = 4; 
     myChart.addMeasureAxis("y", "soi"); 
     var s = myChart.addSeries(null, dimple.plot.line); 
     myChart.draw(); 

    }); 
    </script> 
</div> 

它执行但输出非常奇怪。它显示从1月-69日到12月-94日的数据,然后与1月-50日之间有一个很大的差距(与之间的连线),然后正确地继续,直到12月-68日。显示全天,只显示两半(连接线)。我不知道如何显示图像,或者我只是简单地说:没有特别的原因,数据被按照两个块的顺序排列。如果需要的话,我会包含任何其他信息,这是我的第一个stackover流程帖子,所以感谢您的帮助!

+0

小提琴,然后我们可以帮你.... – 2015-02-06 07:34:10

回答

0

在酒窝下面,酒窝使用d3.time.format解析时间。它必须做出选择:是“1-Dec-50”,2050还是1950?它选择2050:

> format = d3.time.format("%d-%b-%y") 
> format.parse("1-Dec-50") 
    Thu Dec 01 2050 00:00:00 GMT-0500 (Eastern Standard Time) 

最简单的修复方法是修改您的源数据以包含世纪。

+0

非常感谢你,这完全是问题。 – 2015-02-06 19:41:19