将Poloniex API回调JSON转换为适合Highcharts.Stockchart的格式

时间:2018-01-02 20:23:11

标签: javascript json api highcharts poloniex

我正在尝试从Poloniex's公共API方法(特别是returnChartData方法)获取JSON,以将加密货币的图表历史记录显示在一个Highchart Stockchart图表中(看起来像demo one here.)。

这是我使用Poloniex returnChartData回调的JavaScript代码的一部分,从中获取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
 }
}
});

会喜欢任何帮助!

1 个答案:

答案 0 :(得分:0)

请参阅此现场演示: http://jsfiddle.net/kkulig/0f4odg5q/

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

  turboThreshold: 0

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

$.getJSON(poloniexUrl, function(data) {

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

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

  type: 'candlestick'

如果Highcharts保存在JSON对象的x属性中(而不是date),则日期将被正确理解:

  data: data.map((p) => {
    p.x = p.date;
    return p
  }),