我正在尝试从Poloniex's公共API方法(特别是returnChartData方法)获取JSON,以将加密货币的图表历史记录显示在一个Highchart Stockchart图表中(看起来像demo one here.)。
这是我使用Poloniex returnChartData回调的JavaScript代码的一部分,从中获取JSON并将其实现到'数据'图表的一部分。到目前为止,它不起作用,我不能为我的生活找出我需要改变的东西。
var poloniexUrl = "https://poloniex.com/public?command=returnChartData¤cyPair=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
}
}
});
会喜欢任何帮助!
答案 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
}),