Highcharts xAxis форматтер экспорт в CSV - PullRequest
0 голосов
/ 03 июля 2019

У меня есть функция форматирования в xAxis. Когда я экспортирую данные в csv, он генерирует 0,1,2 вместо пользовательских данных в формате xAxis.

Я использую highcharts v7.1.2.

 xAxis: {
                title: {
                    text: 'Year'
                },
                labels: {
                    formatter: function () {
                        var months = ["Jan.", "Feb.", "Mar.", "Apr.", "May", "Jun.",
                            "Jul.", "Aug.", "Sep.", "Oct.", "Nov.", "Dec."];

                        var day = this.value + 1;

                        var date= DateFromDay(2019, day);

                        return months[date.getMonth()] + ' ' + date.getDate();
                    }
                }
            }

Как получить отформатированные данные в файле экспорта. Заранее спасибо за помощь!

1 Ответ

1 голос
/ 03 июля 2019

По умолчанию Highcharts экспортирует x и y значения каждой точки. Используя xAxis.labels.formatter callback, метки оси могут быть изменены, но значения точек одинаковы.

Эта проблема может быть решена путем переноса метода Highcharts.Chart.prototype.getDataRows и изменения массива для строк для экспорта. Проверьте демо и код, указанный ниже:

Код:

function formatXAxisLabels (value) {
    return value * 10 + "s";
}

(function(H) {
  H.wrap(H.Chart.prototype, 'getDataRows', function(proceed, multiLevelHeaders) {
    var rows = proceed.call(this, multiLevelHeaders);

    rows = rows.map(row => {
      if (H.defined(row.x)) {
        row[0] = formatXAxisLabels(row.x);
      }
      return row;
    });

    return rows;
  });
}(Highcharts));

Демо-версия:

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