首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Highcharts标签中包含来自点的数据?

如何在Highcharts标签中包含来自点的数据?
EN

Stack Overflow用户
提问于 2018-08-14 22:06:13
回答 2查看 179关注 0票数 0

我正在尝试在Highcharts折线图的xAxis标签中包含来自我的点的一些额外数据。

我像这样创建我的点数。xAxis是“datetime”类型,而我使用的是自定义tickPositions (这部分工作得很好)。

代码语言:javascript
复制
for (row of results) {
    var point = {x:Date.parse(row.time), y:row.value, magicNumber:row.ID};
    data_series.data.push(point);
    chartConfig.xAxis.tickPositions.push(Date.parse(row.time));
}

在工具提示中,我可以执行以下操作(此操作有效):

代码语言:javascript
复制
tooltip: {          
    formatter: function() {
        return 'ID: ' + this.point.magicNumber + '  Value:' + this.point.y.toFixed(3);
    },
},

如何在xAxis格式化程序中执行等效操作?the docs不清楚这是否可能。

代码语言:javascript
复制
 xAxis: {
        type: 'datetime',
        labels: {
            rotation: 90,    
            formatter: function () {
                var ID = **What goes here to obtain magicNumber?** 

                var datetime = new Date(this.value);
                return ID.toString() + ' ' + datetime.toISOString();
            }
        },

        tickPositions: []
}
EN

回答 2

Stack Overflow用户

发布于 2018-08-14 22:29:05

试试这个,如果我的解决方案不起作用,console.log(this);会给你一个提示。

代码语言:javascript
复制
 xAxis: {
    type: 'datetime',
    labels: {
        rotation: 90,    
        formatter: function () {
            console.log(this);
            var ID = this.chart.series[0].data[this.pos].magicNumber;

            var datetime = new Date(this.value);
            return ID.toString() + ' ' + datetime.toISOString();
        }
    },

    tickPositions: []

}

票数 0
EN

Stack Overflow用户

发布于 2018-08-15 04:00:20

这两个格式化程序具有不同的上下文,因此一种解决方法是迭代数据的每个点(在xAxis.labels.formatter函数内),找到与this.value具有相同x的点,并将其赋给某个变量。这应该足够了,但当没有一个点不适合滴答值时,可能会返回一个空对象。

代码语言:javascript
复制
      xAxis: {
        type: 'datetime',
        labels: {
          formatter() {
            var points = this.chart.userOptions.series[0].data

            var sameTimestampPoint = points.filter(p => p.x === this.value)[0]
            var magicValue = sameTimestampPoint ? sameTimestampPoint.magicValue : ""

            return magicValue + '<br/>' + this.value 
          }
        }

      }

现场示例:https://jsfiddle.net/2r8z5wny/

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

https://stackoverflow.com/questions/51843411

复制
相关文章

相似问题

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