2017-10-18 98 views
1

我试图改变Highstock的名字。 names = ['MSFT','AAPL','GOOG'];姓名= ['ONE','TWO','THREE'];我想用任何名字来改变名字。请帮忙。javascript,前端开发

<script type="text/javascript"> 

    var seriesOptions = [], 
     seriesCounter = 0, 
     names = ['ONE', 'TWO', 'THREE']; 
    /** 
    * Create the chart when all data is loaded 
    */ 
    function createChart() { 

     Highcharts.stockChart('container', { 

      rangeSelector: { 
       selected: 4 
      }, 

      yAxis: { 
       labels: { 
        formatter: function() { 
         return (this.value > 0 ? ' + ' : '') + this.value + '%'; 
        } 
       }, 
       plotLines: [{ 
        value: 0, 
        width: 2, 
        color: 'silver' 
       }] 
      }, 

      plotOptions: { 
       series: { 
        compare: 'percent', 
        showInNavigator: true 
       } 
      }, 

      tooltip: { 
       pointFormat: '<span style="color:{series.color}">{series.name}</span>: <b>{point.y}</b> ({point.change}%)<br/>', 
       valueDecimals: 2, 
       split: true 
      }, 

      series: seriesOptions 
     }); 
    } 

    $.each(names, function (i, name) { 

     $.getJSON('https://www.highcharts.com/samples/data/jsonp.php?filename=' + name.toLowerCase() + '-c.json&callback=?', function (data) { 

      seriesOptions[i] = { 
       name: name, 
       data: data 
      }; 

      // As we're loading the data asynchronously, we don't know what order it will arrive. So 
      // we keep a counter and create the chart when all the data is loaded. 
      seriesCounter += 1; 

      if (seriesCounter === names.length) { 
       createChart(); 
      } 
     }); 
    }); 
</script> 

但是,当我将这些名称更改图表不会加载。任何类型的帮助Apreciated。我怎样才能改变这些名字,请帮助。谢谢

原始码。

<div id="container" style="height: 400px; min-width: 310px; margin-bottom:20px;"></div> 


<script type="text/javascript"> 

    var seriesOptions = [], 
     seriesCounter = 0, 
     names = ['MSFT', 'AAPL', 'GOOG']; 
    /** 
    * Create the chart when all data is loaded 
    */ 
    function createChart() { 

     Highcharts.stockChart('container', { 

      rangeSelector: { 
       selected: 4 
      }, 

      yAxis: { 
       labels: { 
        formatter: function() { 
         return (this.value > 0 ? ' + ' : '') + this.value + '%'; 
        } 
       }, 
       plotLines: [{ 
        value: 0, 
        width: 2, 
        color: 'silver' 
       }] 
      }, 

      plotOptions: { 
       series: { 
        compare: 'percent', 
        showInNavigator: true 
       } 
      }, 

      tooltip: { 
       pointFormat: '<span style="color:{series.color}">{series.name}</span>: <b>{point.y}</b> ({point.change}%)<br/>', 
       valueDecimals: 2, 
       split: true 
      }, 

      series: seriesOptions 
     }); 
    } 

    $.each(names, function (i, name) { 

     $.getJSON('https://www.highcharts.com/samples/data/jsonp.php?filename=' + name.toLowerCase() + '-c.json&callback=?', function (data) { 

      seriesOptions[i] = { 
       name: name, 
       data: data 
      }; 

      // As we're loading the data asynchronously, we don't know what order it will arrive. So 
      // we keep a counter and create the chart when all the data is loaded. 
      seriesCounter += 1; 

      if (seriesCounter === names.length) { 
       createChart(); 
      } 
     }); 
    }); 
</script> 

回答

0

图表被填充值从线:

$.getJSON('https://www.highcharts.com/samples/data/jsonp.php?filename=' + name.toLowerCase() + '-c.json&callback=?', function (data) { 

其中name.tolowercase()需要可变

names = ['MSFT', 'AAPL', 'GOOG']; 

姓名的值,并获取内容从该文件​​:

https://www.highcharts.com/samples/data/jsonp.php?filename=msft-c.json&callback=?

https://www.highcharts.com/samples/data/jsonp.php?filename=aapl-c.json&callback=

https://www.highcharts.com/samples/data/jsonp.php?filename=goog-c.json&callback=?

所以,当你与 名称替换= [ '一', '二', '三'];

它没有找到服务器

https://www.highcharts.com/samples/data/jsonp.php?filename=one-c.json&callback=上相应的文件?

希望它有助于:)。

这些文件需要放在服务器上,并加载相关数据。

+0

感谢您的回复Tphil。我如何将这些文件添加到我的本地服务器或本地主机? – Sohaib

+0

您可以在本地主机环境中运行文件。一个非常简单的方法可以在这里找到 - [链接](http://jasonwatmore.com/post/2016/06/22/nodejs-setup-simple-http-server-local-web-server)。 你可以把你的文件放在这个文件夹中。 如果你确实有一个正在运行的服务器。然后你应该导航到服务目录并在那里放置文件。该位置会因使用的服务器而异。 – Tphil

0

当您想为文件'one','two'和'3'获取JSON响应时出现错误,因为图表无法加载。

为了处理这个异常,我建议你使用jQuery的Ajax方法.fail().always(),比如this

如果你看到我的例子,图表加载,即使没有数据。