Dygraphs динамически меняет название серии?

У меня есть диаграмма dygraphs, на которой нанесено около 115 серий. Это прекрасно работает. Однако я пытаюсь понять, как получить название серии выделенной серии и как отформатировать этот номер.

Пример на странице скрипки dygraph (хотя я использую большую строку php для данных, которые не будут отображаться). http://jsfiddle.net/eM2Mg/861/

В итоге я получаю выделенную метку типа «Год: 1955 Y73 Портфель: 1 000 000 долларов». Я хочу получить этот номер 73 и отредактировать то, что он говорит. Я не могу найти в файле dygraph js конкретный форматировщик меток для серийного номера или метод его получения. Я не хочу маркировать каждую серию вручную.

Идеи? Это отличное программное обеспечение для построения графиков.

gr = new Dygraph(
// containing div
document.getElementById("graphdiv2"),
// CSV or path to a CSV file.
<?php echo $chartDataString2; ?>,
{
    title: 'Spending Level',
    ylabel: 'Spending ($)',
    xlabel: 'Year',
    labelsDivStyles: { 'textAlign': 'right' },
    digitsAfterDecimal: 0,
    yAxisLabelWidth: 100,
    axes: {
        y: {


                labelsKMB: false,
                maxNumberWidth: 11,
                valueFormatter: function numberWithCommas(x) {
                    return 'Spending: $' + x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
                },
                axisLabelFormatter: function numberWithCommas(x) {
                    return '$' + x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
                }
        },
        x: {
            valueFormatter: function numberWithCommas(x) {
                    return 'Year: ' + x;
                },
        },
    },
    showLabelsOnHighlight: true,
    highlightCircleSize: 3,
    strokeWidth: 1.5,
    strokeBorderWidth: 0,
 highlightSeriesBackgroundAlpha: 1.0,
    highlightSeriesOpts: {
      strokeWidth: 4,
      strokeBorderWidth: 2,
      highlightCircleSize: 5,
    },
}
);

person bo_knows    schedule 13.08.2013    source источник


Ответы (1)


Встроенная легенда dygraphs хороша для большинства диаграмм, но в какой-то момент вы перерастаете ее. Похоже, вы достигли этой точки. Я бы предложил скрыть встроенную легенду и реализовать свою собственную, используя highlightCallback и unhighlightCallback. Вы можете получить доступ к названиям серий через g.getLabels().

person danvk    schedule 13.08.2013
comment
Хм. Я не большой разработчик javascript. Я взламывал свои графики вместе, используя примеры. Хотя, похоже, что решением моей проблемы может быть просто создание строки labels: в php во время процесса, в котором я создаю свою строку данных... Я думаю. - person bo_knows; 13.08.2013