2

我正在尝试从Poloniex 的公共 API 方法(特别是 returnChartData 方法)获取 JSON,以将加密货币的图表历史相互显示到 Highchart Stockchart 图表中(看起来像这里的演示。)。

这是我的 JavaScript 代码的一部分,用于使用 Poloniex returnChartData 回调,从中获取 JSON 并将其实现到图表的“数据”部分。到目前为止,它不起作用,我一生都无法弄清楚我需要改变什么。

var poloniexUrl = "https://poloniex.com/public?command=returnChartData&currencyPair=BTC_XMR&start=1405699200&end=9999999999&period=14400";
$.getJSON(poloniexUrl, function(data){
  results = data;
});
// Creates Chart
var chart = new Highcharts.StockChart({


chart: {
 renderTo: 'cryptoChart',
 backgroundColor: 'white'
},

title: {
  text: currentTitle
},

series: [{
  data: results,
  turboThreshold: 1000
}],

xAxis: {
 original: false
},

rangeSelector: {
 selected: 1
},

plotOptions: {
 line: {
  gapSize: 2
 }
}
});

希望有任何帮助!

4

1 回答 1

0

参考这个现场演示:http: //jsfiddle.net/kkulig/0f4odg5q/

如果您使用turboThreshold点的选项需要以整数或数组的形式给出(说明: https ://api.highcharts.com/highstock/plotOptions.series.turboThreshold )。在您的情况下,格式为 JSON,因此我禁用turboThreshold以防止Higcharts 错误 12https://www.highcharts.com/errors/12):

  turboThreshold: 0

$.getJSON是异步的——确保data变量被初始化的最好方法是在回调函数中使用它(第二个参数getJSON):

$.getJSON(poloniexUrl, function(data) {

  // Creates Chart
  var chart = new Highcharts.StockChart({
    chart: {
    (...)

您获取的数据看起来像烛台系列 - 我更改了系列的类型:

  type: 'candlestick'

x如果 Date 保存在JSON 对象(不是)的属性中,Highcharts 将正确理解它date

  data: data.map((p) => {
    p.x = p.date;
    return p
  }),
于 2018-01-03T14:33:23.790 回答