Высокие диаграммы пропускают общие точки подсказок для больших наборов данных - PullRequest
0 голосов
/ 15 января 2019

Похоже, что Highcharts пропускает несколько точек данных в общей подсказке для большого количества точек данных (2500+).

Я пытаюсь визуализировать двухосную диаграмму с 2500+ точками данных для 4 серий - используя Highcharts. Я также использую опцию shared tooltip для рендеринга моей собственной подсказки html. Но иногда Highcharts пропускает 1 или 2 точки данных во всплывающей подсказке. Например, когда я медленно парю над каждой из точек слева направо, я должен увидеть «1 апреля» после «31 марта». Но вместо этого я вижу «2 апреля». Это ошибка? Или я что-то упустил? (Я подтвердил, что все даты присутствуют в категориях, переданных в Highcharts.)

tooltip: {
    borderColor: '#ccc',
    backgroundColor: 'transparent',
    borderWidth: 0,
    shadow: false,
    shared: true, //show all series values together
    useHTML: true,
    // hideDelay: 50000,
    formatter: function() {
        if (props.config.type == 'pie') {
            return 'Value : ' + this.y;
        } else {
            let html = '<div class="fixed-tooltip">';
            html += formatTooltipDate(this.x);
            if (this.points &&
                this.points.length > 1 &&
                props.config.type != "combination") { //multiple series*(see note below)
                //*combination series are having 1 point, so handled in the else section as single series.
                let dateIndex = props.config.data.categories.indexOf(this.x);
                console.log(" date ", this.x);
                console.log(" dateIndex ", dateIndex);
                if (props.config.type == "dual") {
                    let dualAxisTitles = props.config.dualAxisTitles;
                    html += formatDualSeriesTooltipData(this.x, dateIndex, this.points, dualAxisTitles);
                } else {
                    html += formatMultiSeriesTooltipData(this.x, dateIndex, this.points);
                }
            } else { //single series
                //for combination charts have a custom tooltip logic
                if (props.config.type == "combination") {
                    let dateIndex = props.config.data.categories.indexOf(this.x);
                    html += formatMultiSeriesTooltipData(this.x, dateIndex, props.config.data.series);
                } else {
                    let seriesColor = this.points[0].point.series.color;
                    let seriesName = this.points[0].point.series.name;
                    let value = this.points[0].y;
                    html += formatSingleSeriesTooltipData(value);
                }

            }
            html += '</div>';
            return html;
        }
    }
}

Ожидается появление всплывающей подсказки для точки данных «1 апреля» после «31 марта». Вместо этого вы увидите всплывающую подсказку для точки данных «2 апреля».

enter image description here

enter image description here

1 Ответ

0 голосов
/ 16 января 2019

Точки пропускаются, если для них недостаточно места в области графика (1 пиксель за 1 точку). Решение состоит в том, чтобы установить адекватную ширину графика:

chart: {
    width: 1000
},

Демонстрация в реальном времени: http://jsfiddle.net/BlackLabel/yjk0ta43/

API: https://api.highcharts.com/highstock/chart.width

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...