Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在所有系列类型之间共享工具提示_Javascript_Highcharts_Typescript - Fatal编程技术网

Javascript 在所有系列类型之间共享工具提示

Javascript 在所有系列类型之间共享工具提示,javascript,highcharts,typescript,Javascript,Highcharts,Typescript,使用Highcharts中的工具提示,我可以看到并非所有类型的系列都包含在同一工具提示中。在my Highcharts对象的定义中,工具提示的属性如下所示: tooltip: { positioner : function (boxWidth, boxHeight, point) { return { x : point.plotX - 100, y : point.plotY }; }, s

使用Highcharts中的工具提示,我可以看到并非所有类型的系列都包含在同一工具提示中。在my Highcharts对象的定义中,工具提示的属性如下所示:

tooltip: {
    positioner : function (boxWidth, boxHeight, point) {
        return {
            x : point.plotX - 100,
            y : point.plotY
        };
    },
    shared : true
}
我如何为每个系列设置工具提示属性:

public getDefaultTooltip() {
    return {
        pointFormat : '<span style="font-weight: bold; color: {series.color}">{series.name}</span>: <b>{point.y} </b><br/>'
    };
}
公共getDefaultTooltip(){ 返回{ pointFormat:“{series.name}:{point.y}
” }; } 在阅读了工具提示的文档后,我可以看到共享属性对于“散布”类型的系列无效,对于我来说不适用的系列类型到底是什么。那么,是否有一些变通方法可以让所有数据都在同一个共享工具提示中可用


在下面的示例中,我想在同一个工具提示中显示所有系列数据,但散点系列使用的是不同的popover

散射系列在highcharts中定义,无共享工具提示=true。我认为这是因为散布序列在其工具提示中同时显示x和y

var ScatterSeries = extendClass(Series, {
    type: 'scatter',
    sorted: false,
    requireSorting: false,
    noSharedTooltip: true,
    trackerGroups: ['group', 'markerGroup', 'dataLabelsGroup'],
    takeOrdinalPosition: false, // #2342
    kdDimensions: 2,
    kdComparer: 'distR',
    drawGraph: function () {
        if (this.options.lineWidth) {
            Series.prototype.drawGraph.call(this);
        }
    }
});
若要解决此问题,可以使用线宽为0的线系列而不是散点系列。您还需要关闭序列的悬停状态,以避免在悬停时显示该行

  , {
        type: 'line',
        name: 'Average',
        lineWidth: 0,
        states: {
            hover: {
            enabled: false
          }
        },
        data: [3, 2.67, 3, 6.33, 3.33],
        marker: {
            lineWidth: 2,
            lineColor: Highcharts.getOptions().colors[3],
            fillColor: 'white'
        }
    }

散点系列在highcharts中定义,无共享工具提示=true。我认为这是因为散布序列在其工具提示中同时显示x和y

var ScatterSeries = extendClass(Series, {
    type: 'scatter',
    sorted: false,
    requireSorting: false,
    noSharedTooltip: true,
    trackerGroups: ['group', 'markerGroup', 'dataLabelsGroup'],
    takeOrdinalPosition: false, // #2342
    kdDimensions: 2,
    kdComparer: 'distR',
    drawGraph: function () {
        if (this.options.lineWidth) {
            Series.prototype.drawGraph.call(this);
        }
    }
});
若要解决此问题,可以使用线宽为0的线系列而不是散点系列。您还需要关闭序列的悬停状态,以避免在悬停时显示该行

  , {
        type: 'line',
        name: 'Average',
        lineWidth: 0,
        states: {
            hover: {
            enabled: false
          }
        },
        data: [3, 2.67, 3, 6.33, 3.33],
        marker: {
            lineWidth: 2,
            lineColor: Highcharts.getOptions().colors[3],
            fillColor: 'white'
        }
    }

我想你的意思是“功能”,而不是“公共”。JavaScript没有可见性修饰符,除非这是一些伪Java代码?抱歉,同时使用typescript:)@Rolando:您能在JSFIDLE上共享您的代码以更好地评估您的问题吗?:)我想你的意思是“功能”,而不是“公共”。JavaScript没有可见性修饰符,除非这是一些伪Java代码?抱歉,同时使用typescript:)@Rolando:您能在JSFIDLE上共享您的代码以更好地评估您的问题吗?:)你的回答很清楚,可以实施。而且你给出的答案是为了避免与悬停状态成直线。你的答案很清楚,可以实现。而且你给出答案是为了避免线处于悬停状态。。