StockChart показывает метку будущей даты - PullRequest
0 голосов
/ 25 октября 2019

На графике свечей и графиков, несмотря на то, что данные до дня xAxis показывают завтрашнюю дату. Установка endOnTick, max, softMax, потолка на xAxis ничего не меняет.

У кого-нибудь есть идеи, как установить последнюю метку на графике xAxis в последнюю точку на графике?

Пример можетВоспроизвести с помощью этого кода:

var today = new Date(),
day = 1000 * 60 * 60 * 24;

Highcharts.stockChart('container', {
title: {
    text: 'Current Date Indicator'
},
xAxis: [{
    id: 'bottom-datetime-axis',
    type: 'datetime',
    max: today.getTime()
}],
series: [{
    name: 'Project 1',
    borderRadius: 3,
    xAxis: 0,
    type: 'candlestick',

    data: [{
        x: today.getTime() - (11 * day),
open: 5,
high: 7,
low: 2,
close: 6,            
        y: 2
    }, {
        x: today.getTime() - (10 * day),
open: 3,
high: 6,
low: 2,
close: 5,            
        y: 1
    }, {
        x: today.getTime() - (9 * day),
open: 5,
high: 7,
low: 2,
close: 6,            
        y: 2
    }, {
        x: today.getTime() - (8 * day),
open: 3,
high: 6,
low: 2,
close: 5,            
        y: 1
    }, {
        x: today.getTime() - (7 * day),
open: 5,
high: 7,
low: 2,
close: 6,            
        y: 2
    }, {
        x: today.getTime() - (4 * day),
open: 3,
high: 6,
low: 2,
close: 5,            
        y: 1
    }, {
        x: today.getTime() - (3 * day),
open: 5,
high: 7,
low: 2,
close: 6,            
        y: 1
    }, {
        x: today.getTime() - (2 * day),
open: 3,
high: 6,
low: 2,
close: 5,            
        y: 1
    }, {
        x: today.getTime() - day,
open: 3,
high: 6,
low: 2,
close: 5,            
        y: 3
    }, {
        x: today.getTime(),
open: 5,
high: 7,
low: 2,
close: 6,            
        y: 2
    }]
}]
});

или использовать онлайн-демонстрацию, которую можно найти здесь: https://jsfiddle.net/gt9cr4x7/1/

screenshot

1 Ответ

0 голосов
/ 25 октября 2019

Вы можете использовать функцию tickPositioner и возвращать только те позиции тиков, которые имеют значение ниже последней точки x значение:

xAxis: {
    ...,
    tickPositioner: function() {
        var tickPositions = this.tickPositions;

        for (var i = tickPositions.length; i >= 0; i--) {
            if (tickPositions[i] > this.dataMax) {
                tickPositions.splice(i, 1);
            }
        }

        return tickPositions
    }
}

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

Справочник по API: https://api.highcharts.com/highstock/xAxis.tickPositioner

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