Google Charts: Как настроить формат даты, отображаемый на оси? - PullRequest
1 голос
/ 30 марта 2020

Я следую документации по настройке осей здесь , но там не говорится, как настроить формат даты на ОСях, только на столбцах.

Мне нужно, чтобы формат моих осей был "дд / мм / гг", но я не смог добиться таких простых тактов ...

Вот кодовое поле

google.charts.load("current", {
  packages: ["line"]
});

google.charts.setOnLoadCallback(drawChart);

function drawChart() {
  var data = google.visualization.arrayToDataTable([
    ["Date", "A", "B", "C", "D", "E", "F"],
    [new Date(2006, 1, 1), 5394, 5014, 2480, 9380, 4852, 7128],
    [new Date(2006, 1, 8), 5697, 5147, 2480, 9187, 7644, 7134],
    [new Date(2006, 1, 16), 5780, 5192, 2480, 8941, 7729, 7148],
    [new Date(2006, 1, 25), 5993, 5211, 2480, 8750, 7768, 7151],
    [new Date(2006, 2, 2), 6207, 5282, 2480, 8636, 7827, 7195],
    [new Date(2006, 2, 11), 6334, 5361, 2548, 8515, 7874, 7140],
    [new Date(2006, 2, 16), 6687, 5346, 2566, 8347, 7895, 7131],
    [new Date(2006, 2, 28), 6967, 5398, 2802, 8220, 7831, 7141],
    [new Date(2006, 3, 1), 7061, 5419, 2818, 8198, 7827, 7031],
    [new Date(2006, 3, 2), 7335, 5457, 2829, 8211, 7959, 6966]
  ]);

  var options = {
    chart: { title: "my graph" },
    curveType: "function",
    legend: { position: "none" },
    axes: {
      x: {
        0: { side: "top", label: "axes label", format: "dd/MM/yy", color: "red" }
      }
    },
    hAxis: { format: "dd/MM/yyyy" },
    vAxis: { format: "MMM d, y" }
  };

  var chart = new google.charts.Line(document.getElementById("curve_chart"));

  chart.draw(data, options);
}
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>

<div class="container">
	<div class="row">
		<div class="col-md-12">
			<div id="curve_chart"></div>
		</div>
	</div>
</div>

1 Ответ

1 голос
/ 30 марта 2020

есть несколько параметров, которые не поддерживаются диаграммами материал .
см. -> Ошибка отслеживания для четности характеристик диаграммы материалов

материал диаграмма -> google.charts.Line - packages: ["line"]

класс c диаграмма -> google.visualization.LineChart - packages: ["corechart"]


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

google.charts.Line.convertOptions(options)

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

google.charts.load("current", {
  packages: ["line"]
});

google.charts.setOnLoadCallback(drawChart);

function drawChart() {
  var data = google.visualization.arrayToDataTable([
    ["Date", "A", "B", "C", "D", "E", "F"],
    [new Date(2006, 1, 1), 5394, 5014, 2480, 9380, 4852, 7128],
    [new Date(2006, 1, 8), 5697, 5147, 2480, 9187, 7644, 7134],
    [new Date(2006, 1, 16), 5780, 5192, 2480, 8941, 7729, 7148],
    [new Date(2006, 1, 25), 5993, 5211, 2480, 8750, 7768, 7151],
    [new Date(2006, 2, 2), 6207, 5282, 2480, 8636, 7827, 7195],
    [new Date(2006, 2, 11), 6334, 5361, 2548, 8515, 7874, 7140],
    [new Date(2006, 2, 16), 6687, 5346, 2566, 8347, 7895, 7131],
    [new Date(2006, 2, 28), 6967, 5398, 2802, 8220, 7831, 7141],
    [new Date(2006, 3, 1), 7061, 5419, 2818, 8198, 7827, 7031],
    [new Date(2006, 3, 2), 7335, 5457, 2829, 8211, 7959, 6966]
  ]);

  var options = {
    chart: { title: "my graph" },
    curveType: "function",
    legend: { position: "none" },
    axes: {
      x: {
        0: { side: "top", label: "axes label", format: "dd/MM/yy", color: "red" }
      }
    },
    hAxis: { format: "dd/MM/yyyy" }
  };

  var chart = new google.charts.Line(document.getElementById("curve_chart"));
  chart.draw(data, google.charts.Line.convertOptions(options));
}
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>

<div class="container">
	<div class="row">
		<div class="col-md-12">
			<div id="curve_chart"></div>
		</div>
	</div>
</div>

примечание: на приведенном выше графике ось Y содержит числа,
формат даты не будет работать на vAxis. ..

vAxis: { format: "MMM d, y" }  // <-- removed from above snippet

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

при загрузке диаграмм Google по умолчанию -> 'en' для загрузки другой локали, укажите язык в выражении load ...

google.charts.load("current", {
  packages: ["line"],
  language: "fr"
});
...