Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何解决动态图范围选择器错误?_Jquery_Json_Dygraphs - Fatal编程技术网

Jquery 如何解决动态图范围选择器错误?

Jquery 如何解决动态图范围选择器错误?,jquery,json,dygraphs,Jquery,Json,Dygraphs,当我开始使用范围选择器时,动态图中的范围选择器将x轴的开始值乘以10(默认情况下,加载页面后x轴是正确的)。e、 g.我的第一个x轴值是1->范围选择器从10开始(5->从50开始)。 数据为JSON格式,无需范围选择器即可正确显示。 我如何解决这个问题或解决这个问题 下面是dygraph.com/fiddle中的代码 我无法显示JSON解析,因此我输入了在浏览器的源代码中看到的JSON。(它以10开头,但在我的数据库中它以1开头。图表在x轴上显示10,但在我移动范围选择器之前显示1的y值) 但

当我开始使用范围选择器时,动态图中的范围选择器将x轴的开始值乘以10(默认情况下,加载页面后x轴是正确的)。e、 g.我的第一个x轴值是1->范围选择器从10开始(5->从50开始)。 数据为JSON格式,无需范围选择器即可正确显示。 我如何解决这个问题或解决这个问题

下面是dygraph.com/fiddle中的代码 我无法显示JSON解析,因此我输入了在浏览器的源代码中看到的JSON。(它以10开头,但在我的数据库中它以1开头。图表在x轴上显示10,但在我移动范围选择器之前显示1的y值)

但当我手动操作JSON以

var datenausdb = '[["1","100.0000","101.0000","100.0000"],["2","105.0000","99.0000","100.0000"],["3","104.0000","101.0000","102.0000"],["4","105.0000","102.0000","102.0000"]]'; 

1显示在x轴上。当我移动选择器时,它将变为10,并且图表中不再显示任何内容

我想发布由Dan提到的字符串引起的问题的完整解决方案

我还必须改变日期。这一个有效:

var datenausdb = [
["2013-08-05","100.0000","100.0000","99.9700"],
["2013-08-06","100.0000","101.0000","100.5000"],
["2013-08-07","101.1200","101.1200","101.1000"],
["2013-08-08","100.0100","100.0100","100.0100"],
["2013-08-09","99.9700","99.9700","99.9700"],
["2013-08-12","100.0000","100.0000","100.0000"],
["2013-08-13","101.0000","101.0000","102.0000"],
["2013-08-14","101.1200","101.1200","102.5000"],
["2013-08-15","100.0100","100.0100","100.0100"],
["2013-08-16","99.9700","99.9700","99.9700"],
["2013-08-19","100.5000","100.5000","100.5000"],
["2013-08-20","101.1000","101.1000","101.1000"],
["2013-08-21","102.0000","102.0000","99.9700"]
]; 


for (var k = 0; k < datenausdb.length; k++){
datenausdb[k][0] = new Date(datenausdb[k][0]); 
}

for (var i = 0; i < datenausdb.length; i++){
for (var j = 1; j < datenausdb[i].length; j++) {
datenausdb[i][j] = parseFloat(datenausdb[i][j]);
}
}

$(document).ready(function () {

   g1 =  new Dygraph( 
            document.getElementById("div1"),
            datenausdb, 
        {
        showRangeSelector: true,
        rangeSelectorHeight: 50,
          }
            );
 }
 );
var datenausdb=[
["2013-08-05","100.0000","100.0000","99.9700"],
["2013-08-06","100.0000","101.0000","100.5000"],
["2013-08-07","101.1200","101.1200","101.1000"],
["2013-08-08","100.0100","100.0100","100.0100"],
["2013-08-09","99.9700","99.9700","99.9700"],
["2013-08-12","100.0000","100.0000","100.0000"],
["2013-08-13","101.0000","101.0000","102.0000"],
["2013-08-14","101.1200","101.1200","102.5000"],
["2013-08-15","100.0100","100.0100","100.0100"],
["2013-08-16","99.9700","99.9700","99.9700"],
["2013-08-19","100.5000","100.5000","100.5000"],
["2013-08-20","101.1000","101.1000","101.1000"],
["2013-08-21","102.0000","102.0000","99.9700"]
]; 
对于(var k=0;k

请提供一个说明问题的链接,最好使用dygraphs.com/fiddleI将该链接添加到fiddle和代码中。在小提琴链接上没有图表,所以我仍然不确定你的问题是什么。一个问题是JSON完全由字符串组成,而不是数字。@danvk:对不起,JSFIDLE链接已更新。您可以看到第一张图表的x轴以1开始,但一旦使用范围选择器,它就以10开始。在第二张图表中,使用范围选择器时,x轴为10,从100开始。因此,始终使用因子10。好吧,问题是字符串而不是数字!
var datenausdb = [
["2013-08-05","100.0000","100.0000","99.9700"],
["2013-08-06","100.0000","101.0000","100.5000"],
["2013-08-07","101.1200","101.1200","101.1000"],
["2013-08-08","100.0100","100.0100","100.0100"],
["2013-08-09","99.9700","99.9700","99.9700"],
["2013-08-12","100.0000","100.0000","100.0000"],
["2013-08-13","101.0000","101.0000","102.0000"],
["2013-08-14","101.1200","101.1200","102.5000"],
["2013-08-15","100.0100","100.0100","100.0100"],
["2013-08-16","99.9700","99.9700","99.9700"],
["2013-08-19","100.5000","100.5000","100.5000"],
["2013-08-20","101.1000","101.1000","101.1000"],
["2013-08-21","102.0000","102.0000","99.9700"]
]; 


for (var k = 0; k < datenausdb.length; k++){
datenausdb[k][0] = new Date(datenausdb[k][0]); 
}

for (var i = 0; i < datenausdb.length; i++){
for (var j = 1; j < datenausdb[i].length; j++) {
datenausdb[i][j] = parseFloat(datenausdb[i][j]);
}
}

$(document).ready(function () {

   g1 =  new Dygraph( 
            document.getElementById("div1"),
            datenausdb, 
        {
        showRangeSelector: true,
        rangeSelectorHeight: 50,
          }
            );
 }
 );