我想比较一个具有相同x轴但y值不同的外部变量的级数。为了更容易地解释这个问题,我们提供了一个示例代码here。
数据系列为
series: [{data: [5, 4, 5, 7, 8, 6, 3, 6, 7, 4, 8, 9]},
{data: [4, 6, 7, 9, 5, 9, 12, 11, 9, 7, 6, 5]}]外部变量是
var extdata = [2,2,2,1,0,0,0,1,1,2,2,2];它们共享相同的x轴(在本例中为Jan、Feb、...、Dec )。假设我想要显示一个工具提示"max“,当该月的一系列数据点加上外部变量中的相应条目至少为10时,否则将保留和的数值,因此3月份的工具提示为
March:
Series 1: 7
Series 2: 9在四月份的时候
April:
Series 1: 8
Series 2: Max是否可以仅使用工具提示格式化程序来完成此操作?如果不是这样,如何实现这一点?谢谢!
发布于 2013-04-04 18:21:53
有几种方法可以做到这一点,但我能想到的最简单的方法是这样格式化extdata:
var extdata = {'Jan':2,
'Feb':2,
'Mar':2,
'Apr':1,
'May':0,
'Jun':0,
'July':0,
'Aug':1,
'Sep':1,
'Oct':2,
'Nov':2,
'Dec':2};然后,在您的工具提示函数中,可以像这样引用它:
formatter: function () {
var s = '<b>' + this.x + '</b>';
var month = this.x;
$.each(this.points, function (i, point) {
var total = point.y + extdata[month];
s += '<br/>' + point.series.name + ': ' + (total>=10?'max':point.y);
});
return s;
},http://jsfiddle.net/3uhge/
通过索引当月的extdata,您不必计算出悬停在哪个点上。如果需要,您可以通过迭代类别来查找月份名称,从而解决此问题。
发布于 2013-04-04 20:01:54
对于分类,SteveP的答案是相当好的。但是,如果您不想格式化数据,请使用以下内容:
s+= '<br/>Ext data: ' + extdata[this.points[0].point.x]; 其中this.points[0].point.x等于外部数据索引的索引。jsFiddle
但是,如果您的xAxis未分类,则可以简单地按照this.x获取索引,如前面的答案jsFiddle所示
https://stackoverflow.com/questions/15802112
复制相似问题