Автоматическое увеличение на высоких графиках после загрузки - PullRequest
16 голосов
/ 25 августа 2011

Кто-нибудь знает, как автоматически увеличить часть графика после его загрузки?У меня много данных временных рядов, но самая важная информация находится справа.Я все еще хотел бы, чтобы все данные были доступны, но только последние 7 дней просмотра были увеличены.

То, что я хотел бы смоделировать, - это перетаскивание пользователем щелчка в течение 7 последних дней на моем графике.Поэтому, если кто-нибудь знает, как вручную вызвать это событие, вероятно, я бы хотел это сделать.

Вот пример диаграммы из jsfiddle, которая имеет обычную функцию масштабирования: http://jsfiddle.net/Y5q8H/50/

У меня есть несколько других идей о том, как это можно сделать, но я думаю, что я хочу, чтобы это был лучший способ сделать это.

Другие идеи:

1) Загружать только последние 7дней, вставьте фальшивую кнопку «Сбросить масштаб», которая затем загрузит весь ряд данных впоследствии

2) Посмотрите на этот дочерний продукт StockCharts , который сейчас находится в бета-версии.Кажется, у него есть несколько предустановленных диапазонов, которые было бы здорово иметь.Я не уверен, какую часть моего существующего кода мне придется изменить.

Ответы [ 3 ]

29 голосов
/ 25 августа 2011

Вы можете использовать функцию setExtremes для изменения масштаба.http://jsfiddle.net/quVda/382/

Для диаграммы временных рядов с ежедневной информацией необходимо использовать представление даты в формате UTC:

var d = new Date();
chart.xAxis[0].setExtremes(
    Date.UTC(d.getFullYear(), d.getMonth(), d.getDate() - 7),
    Date.UTC(d.getFullYear(), d.getMonth(), d.getDate()));
3 голосов
/ 01 июля 2014

Обновлена ​​официальная скрипка для решения, ребята: http://jsfiddle.net/gh/get/jquery/1.7.2/highslide-software/highcharts.com/tree/master/samples/stock/members/axis-setextremes/

$(function() {
    $('#container').highcharts('StockChart', {

        rangeSelector: {
            selected: 1
        },

        series: [{
            name: 'USD to EUR',
            data: usdeur
        }]
    });

    $('#button').click(function() {
        var chart = $('#container').highcharts();
        chart.xAxis[0].setExtremes(
            Date.UTC(2007, 0, 1),
            Date.UTC(2007, 11, 31)
        );
    });
});
0 голосов
/ 26 августа 2017

Есть еще один вариант, если вы попробуете

var max_in = 100; //the highest y value you have in your series data;
var min_in = 41 ;//the lowest y value you have in your series data;

yaxis=this.yAxis[0];
yaxis.options.max = max_in;
yaxis.options.min = min_in;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...