我已经实现了HighStock图表,显示在:
http://www.highcharts.com/stock/demo/compare
此图表显示了从第一个或最左边的数据点开始的百分比变化。我有一些股票分析师告诉我,这没有多大用处,他们宁愿看到相对于先前数据点的百分比变化,换句话说,如果我查看图表中的“今天”,我会希望看到昨天的百分比变化。我查看了highstock API,但似乎找不到定义百分比变化函数的方法。是否有适当的方法来使高库存做到这一点,或者我应该使用高图表折线图完成此操作?
最佳答案
以前我不得不在海图上做类似的事情。我想获得从一个数据点到下一个数据点的实际变化。
我要做的是看一下当前点(this.x),发现它在系列数组中的位置。从那里,我可以轻松找到上一点的索引(index = a-1)并进行数学运算。希望这可以帮助 :)
编辑:
调查了stockcharts API,并为该产品弄清楚了:
tooltip: {
formatter: function() {
var s = '<b>'+ Highcharts.dateFormat('%A, %b %e, %Y', this.x) +'</b><br>';
$.each(this.points, function(i, point) {
s += '<span style="font-weight: bold; font-size: 1.2em; color: ' + point.point.series.color + ';">' + point.point.series.name + '</span>:<span style="font-weight: bold; font-size: 1.2em;">' + point.y + '</span>' ;
s += '<span style="font-size: .8em;">';
var target = this.x;
index = 0;
for (var a = 0; a < point.series.points.length; a++) {
if (point.series.points[a].x == target)
{
index = a - 1;
}
}
var delta = 0;
var change = 0;
if (index >= 0)
{
delta = this.y - point.series.points[index].y;
change = (delta / point.series.points[index].y) * 100;
}
s += Math.round(change,2) + '%</span>';
s +='</span><br>';
});
return s;
}
},
和一个有效的jsfiddle:http://jsfiddle.net/nLjsc/2/
关于javascript - Highstock系列与前一天相比,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12287799/