Можно ли заполнить только части графа в библиотеке dygraph?

Я хочу заполнить только часть графика (указанный x-диапазоном), а не полное заполнение, как это делается с помощью опции fillGraph. Возможно ли это в настоящее время?


person spidersharma    schedule 15.09.2015    source источник


Ответы (1)


Один из вариантов — разделить серию данных на две части: одну для закрашенной области и одну для других областей. Затем вы можете установить fillGraph только для заполненной серии:

new Dygraph(div,
[
    [1,    3, null],
    [2,    6, null],
    [3,    8, null],
    [4,    9, 9   ],
    [5, null, 9   ],
    [6,    8, 8   ],
    [7,    6, null],
    [8,    3, null]
], {
    // note: second 'Y' series has a space, to distinguish it. (hack!)
    labels: ['X', 'Y', 'Y '],
    series: {
        'Y': {
            color: 'blue'
        },
        'Y ': {
            fillGraph: true,
            color: 'blue'
        }
    }
});

См. эту скрипту.

Это выглядит правильно, но у него есть обратная сторона: ваши данные становятся более сложными и отображаются два значения y в легенде, когда вы наводите указатель мыши на точку перехода.

В качестве альтернативы можно написать пользовательский плоттер, который заполняет только конкретного региона. Вы можете посмотреть эту демонстрацию и этот вопрос для вдохновения.

person danvk    schedule 15.09.2015
comment
Большое спасибо! Я думаю, мне нужно будет написать собственный плоттер, как вы предложили. - person spidersharma; 16.09.2015
comment
Вариант использования в основном состоит в том, чтобы заполнить часть графика на графике скорость-время и показать, что область под кривой (заполненная с помощью пользовательского плоттера) в основном представляет собой расстояние. Также я буду делать плоттер, чтобы показать касательные в заданной точке, чтобы показать различные физические/математические понятия. Я обновлю, как только напишу эти пользовательские плоттеры и захочу интегрировать их в dygraph. Еще раз спасибо, и продолжайте в том же духе! - person spidersharma; 16.09.2015