2 проблемы в формате оси даты Google диаграммы - PullRequest
0 голосов
/ 06 декабря 2018

Я пытаюсь отформатировать дату на оси следующим образом: май 18 года.Мое форматирование выглядит так: «МММ».У меня есть 2 проблемы: 1. Что я должен сделать, чтобы первая буква месяца стала заглавной?Нужно ли генерировать тики, чтобы добиться этого?2. Существует проблема с апострофом, т.е. когда он применяется после него, форматирование больше не используется, а сам апостроф не отображается.Например, приведенное выше выглядит следующим образом: may yy.Я также пытался использовать символы апострофа из ASCII и Unicode, но это не работает.Просто Google Charts, вероятно, рассматривает апостроф как символ, который нельзя использовать ... Есть какой-нибудь совет?

РЕДАКТИРОВАТЬ:

Проблема решена с апострофом.\u2019 не совсем апостроф.Правильный апостроф: https://unicode -table.com / ru / 0027 / , но в любом случае выглядит хорошо.

Однако, в моем случае, первая буква месяца по-прежнемумаленький, потому что я использую польский перевод.Есть какой-нибудь совет для этого?

РЕДАКТИРОВАТЬ:

Проблема решена.

1 Ответ

0 голосов
/ 06 декабря 2018

вы можете использовать Юникод как таковой -> \u2019

hAxis: {
  format: 'MMM \u2019yy'
}

см. Следующий рабочий фрагмент ...

google.charts.load('current', {
  packages: ['controls', 'corechart', 'table']
}).then(function () {
  var data = new google.visualization.DataTable();
  data.addColumn('date', 'x');
  data.addColumn('number', 'y');
  data.addRows([
    [new Date(2018, 4, 1), 1],
    [new Date(2018, 5, 2), 2],
    [new Date(2018, 6, 3), 3],
  ]);

  var chart = new google.visualization.LineChart(document.getElementById('chart'));
  chart.draw(data, {
    hAxis: {
      format: 'MMM \u2019yy'
    }
  });
});
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="chart"></div>

РЕДАКТИРОВАТЬ

, чтобы использовать первую букву при использовании кода языка,
использовать ticksвместо format
затем вручную измените первую букву toUpperCase ...

  ticks: data.getDistinctValues(0).map(function (date) {
    var value = formatDate.formatValue(date);
    value = value.substring(0, 1).toUpperCase() + value.substr(1);
    return {
      v: date,
      f: value
    };
  })

, см. следующий рабочий фрагмент ...

google.charts.load('current', {
  packages: ['corechart'],
  language: 'pl'
}).then(function () {
  var data = new google.visualization.DataTable();
  data.addColumn('date', 'x');
  data.addColumn('number', 'y');
  data.addRows([
    [new Date(2018, 4, 1), 1],
    [new Date(2018, 5, 2), 2],
    [new Date(2018, 6, 3), 3],
  ]);

  var formatDate = new google.visualization.DateFormat({
    pattern: 'MMM \u2019yy'
  });

  var chart = new google.visualization.LineChart(document.getElementById('chart'));
  chart.draw(data, {
    hAxis: {
      ticks: data.getDistinctValues(0).map(function (date) {
        var value = formatDate.formatValue(date);
        value = value.substring(0, 1).toUpperCase() + value.substr(1);
        return {
          v: date,
          f: value
        };
      })
    }
  });
});
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="chart"></div>
...