始终在第一个可见点显示数据标签

时间:2019-02-05 11:00:02

标签: highcharts

在我的图表图表上,我使用

function q54528239
%% Load some sample data:
measures = struct2array(load('fisheriris','meas'));
%% Plot
figure();
coordLineStyle = 'k.';
boxplot(measures(1:20,1:2), 'Symbol', coordLineStyle); hold on;
parallelcoords(measures(1:20,1:2), 'Color', 0.7*[1 1 1], 'LineStyle', '-',...
  'Marker', '.', 'MarkerSize', 10);
end

为数据设置新的xAxis时间范围并进行“缩放”。 我想始终在第一个可见数据点上显示数据标签。如何获得xAxis更新的第一点并在那里渲染数据标签?

enter image description here

1 个答案:

答案 0 :(得分:1)

afterSetExtremes事件中,您可以选中该点上的isInside标志并启用或禁用dataLabel

xAxis: {
    events: {
        afterSetExtremes: function() {
            var series = this.chart.series,
                pointFound,
                i = 0;

            series.forEach(function(s) {
                pointFound = false;

                s.points.forEach(function(p) {
                    if (p.isInside && !pointFound) {
                        p.update({
                            dataLabels: {
                                enabled: true
                            }
                        });
                        pointFound = true;
                    } else if (p.dataLabel) {
                        p.update({
                            dataLabels: {
                                enabled: false
                            }
                        })
                    }
                });
            });
        }
    }
}

实时演示:http://jsfiddle.net/BlackLabel/qv0bcr3t/

API:https://api.highcharts.com/class-reference/Highcharts.Point#update