高图-在共享的工具提示中设置重叠的散点的格式

时间:2019-07-01 11:34:18

标签: javascript highcharts

我有一个散点图,其中一些不同系列的点在准确点上重叠。 这两个点在不同系列中的x,y是相同的。

所以我需要在工具提示中同时显示它们两个。 但是,shared选项仅在我不格式化工具提示时可用。

使用pointFormat时不起作用。 我尝试使用formatter,但是this仅给出了当前的point。 如果我将图表切换为折线图,则this给出points,其中所有点都位于当前位置。这样,我就可以迭代并进行格式化。

图表选项:

{
    chart: {
        type: 'scatter',
        zoomType: 'xy'
    },

    title: {
        text: 'Height Versus Weight of 507 Individuals by Gender'
    },
    subtitle: {
        text: 'Source: Heinz  2003'
    },
    xAxis: {
        title: {
            enabled: true,
            text: 'Height (cm)'
        },
        startOnTick: true,
        endOnTick: true,
        showLastLabel: true
    },
    yAxis: {
        title: {
            text: 'Weight (kg)'
        }
    },
    legend: {
        layout: 'vertical',
        align: 'left',
        verticalAlign: 'top',
        x: 100,
        y: 70,
        floating: true,
        backgroundColor: Highcharts.defaultOptions.chart.backgroundColor,
        borderWidth: 1
    },          tooltip: {
              formatter: function () {
              console.log(this);
                  return this.points.reduce(function (s, point) {
                      return s + '<br/>' + point.series.name + ': ' +
                          point.point.options.dynamicText;
                  }, '<b>' + this.x + '</b>');
              },
              crosshairs:true,
              shared: true
          },
    plotOptions: {
        scatter: {
            marker: {
                radius: 5,
                states: {
                    hover: {
                        enabled: true,
                        lineColor: 'rgb(100,100,100)'
                    }
                }
            },
            states: {
                hover: {
                    marker: {
                        enabled: false
                    }
                }
            }
        }
    },
    series: [{
        name: 'Female',
        color: 'rgba(223, 83, 83, .5)',
        data: [{x:161.2, y:51.6, dynamicText:"foo1"}]

    }, {
        name: 'Male',
        color: 'rgba(119, 152, 191, .5)',
        data: [{x:161.2, y:51.6, dynamicText:"foo2"}]
    }]
}

https://jsfiddle.net/dushyantbangal/ojqde34x/17/

1 个答案:

答案 0 :(得分:0)

共享的工具提示不适用于scatter系列-请检查以下问题:https://github.com/highcharts/highcharts/issues/1431

最简单的解决方案是使用line属性设置为lineWidth的{​​{1}}系列类型:

0

实时演示: http://jsfiddle.net/BlackLabel/3fda1nm4/

API参考: https://api.highcharts.com/highcharts/series.line.lineWidth