首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Highcharts:是否可以在工具提示格式化程序中将序列与外部变量进行比较?

Highcharts:是否可以在工具提示格式化程序中将序列与外部变量进行比较?
EN

Stack Overflow用户
提问于 2013-04-04 11:41:01
回答 2查看 844关注 0票数 0

我想比较一个具有相同x轴但y值不同的外部变量的级数。为了更容易地解释这个问题,我们提供了一个示例代码here

数据系列为

代码语言:javascript
复制
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]}]

外部变量是

代码语言:javascript
复制
var extdata = [2,2,2,1,0,0,0,1,1,2,2,2];

它们共享相同的x轴(在本例中为Jan、Feb、...、Dec )。假设我想要显示一个工具提示"max“,当该月的一系列数据点加上外部变量中的相应条目至少为10时,否则将保留和的数值,因此3月份的工具提示为

代码语言:javascript
复制
March:
Series 1: 7
Series 2: 9

在四月份的时候

代码语言:javascript
复制
April:
Series 1: 8
Series 2: Max

是否可以仅使用工具提示格式化程序来完成此操作?如果不是这样,如何实现这一点?谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-04 18:21:53

有几种方法可以做到这一点,但我能想到的最简单的方法是这样格式化extdata:

代码语言:javascript
复制
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};

然后,在您的工具提示函数中,可以像这样引用它:

代码语言:javascript
复制
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,您不必计算出悬停在哪个点上。如果需要,您可以通过迭代类别来查找月份名称,从而解决此问题。

票数 0
EN

Stack Overflow用户

发布于 2013-04-04 20:01:54

对于分类,SteveP的答案是相当好的。但是,如果您不想格式化数据,请使用以下内容:

代码语言:javascript
复制
s+= '<br/>Ext data: ' + extdata[this.points[0].point.x]; 

其中this.points[0].point.x等于外部数据索引的索引。jsFiddle

但是,如果您的xAxis未分类,则可以简单地按照this.x获取索引,如前面的答案jsFiddle所示

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15802112

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档