Да, работа с Осью дат может быть сложной.Даже если вы некоторое время работали с amCharts v4, может быть не совсем понятно, как приручить ось так, как вы хотите.Я настоятельно рекомендую прочитать наше руководство по оси координат в полном объеме, это действительно поможет.График, в основном, попытается выяснить, как можно вписать частоту в график.
Первое, что вы хотите настроить - это dateAxis.renderer.minGridDistance
.По умолчанию это 120
пикселей.Пример диаграммы имеет 24 часа, с минимальным интервалом в 120 пикселей на каждые 2 часа, ваша область chart.plotContainer
должна быть 120 * (24/2)
, или, по крайней мере, 1440 пикселей, окно вашего браузера должно быть даже шире этого.Поэтому, если мы сократим это, мы с большей вероятностью сможем уместить 2-часовую сетку с интервалами.
Следующая вещь, и это основной ингредиент, это dateAxis.gridIntervals
.Если вы посмотрите на сгенерированную документацию, вы увидите список интервалов, из которых будет выбран график.Там ежечасно или каждые 3 часа, но не каждые 2 часа.Если мы заменим этот список на тот, который имеет 2-часовой интервал, если он может соответствовать, диаграмма будет использовать его.
Вы захотите сделать то же самое на оси даты scrollBarX
, какхорошо.
Соответствующий код:
dateAxis.renderer.minGridDistance = 75; // 75 * 24/2 == 900 minimum plotContainer width requisite
var gridIntervals = [
{ timeUnit: "millisecond", count: 1 },
{ timeUnit: "millisecond", count: 5 },
{ timeUnit: "millisecond", count: 10 },
{ timeUnit: "millisecond", count: 50 },
{ timeUnit: "millisecond", count: 100 },
{ timeUnit: "millisecond", count: 500 },
{ timeUnit: "second", count: 1 },
{ timeUnit: "second", count: 5 },
{ timeUnit: "second", count: 10 },
{ timeUnit: "second", count: 30 },
{ timeUnit: "minute", count: 1 },
{ timeUnit: "minute", count: 5 },
{ timeUnit: "minute", count: 10 },
{ timeUnit: "minute", count: 30 },
{ timeUnit: "hour", count: 1 },
{ timeUnit: "hour", count: 2 }, // This is the 2-hour interval
{ timeUnit: "hour", count: 3 },
{ timeUnit: "hour", count: 6 },
{ timeUnit: "hour", count: 12 },
{ timeUnit: "day", count: 1 },
{ timeUnit: "day", count: 2 },
{ timeUnit: "day", count: 3 },
{ timeUnit: "day", count: 4 },
{ timeUnit: "day", count: 5 },
{ timeUnit: "week", count: 1 },
{ timeUnit: "month", count: 1 },
{ timeUnit: "month", count: 2 },
{ timeUnit: "month", count: 3 },
{ timeUnit: "month", count: 6 },
{ timeUnit: "year", count: 1 },
{ timeUnit: "year", count: 2 },
{ timeUnit: "year", count: 5 },
{ timeUnit: "year", count: 10 },
{ timeUnit: "year", count: 50 },
{ timeUnit: "year", count: 100 }
];
dateAxis.gridIntervals.setAll(gridIntervals);
chart.scrollbarX.events.on("validated", function() {
chart.scrollbarX.scrollbarChart.xAxes.getIndex(0).gridIntervals.setAll(gridIntervals);
});
Вилка:
https://codepen.io/team/amcharts/pen/9ba62a5bb5239fee149c2d46bf1e4b81
Надеюсь, это поможет!
(Кстати -Salaams! Мне нравится имя пользователя, это ссылка на Fairy Tail?)