Amcharts:基于日期和时间的时间表轴

Amcharts: date and time based axis for schedule

我想在基于 Amcharts 的甘特图中显示一个时间表。它将包含整周,以及这一周每一天的不同时间段。

这意味着,当我看到整周时,X 轴上会显示日期: 4 月 1 日,4 月 2 日,... 4 月 7 日

当我放大一个特殊的日子时,它会显示小时数: 08:00,08:30 ... 13:30,14:00。

在寻找解决方案时,我找到了只有几天或只有几小时的例子。但从来没有我需要的混合轴。 Amcharts 可以吗?

目前,我的代码如下所示:

var dateAxis = chart.xAxes.push(new am4charts.DateAxis());
dateAxis.dateFormatter.dateFormat = "yyyy-MM-dd HH:mm";
dateAxis.renderer.minGridDistance = 50;
dateAxis.baseInterval = { count: 10, timeUnit: "minute" };
dateAxis.max = new Date(2018, 0, 5, 24, 0, 0, 0).getTime();
dateAxis.strictMinMax = true;
dateAxis.renderer.tooltipLocation = 0;

但是只显示小时,用户很难看懂图表。

您不能直接绘制多个轴值(除非 amcharts 找到一个用例并添加一个包装器)但您可以侦听点击或缩放事件并使用轴的新值更新图表。当他们缩小时将其重置。无论如何,您正在重新渲染图表,因为每次缩放时都必须重新计算绘图比例。

如果这是一种可接受的方法,我将用代码更新答案。您也可以同时按照上述逻辑自行尝试。

我在Amcharts V3中找到了以下解决方案。

第一个是把日期作为X轴,时间作为Y轴:https://www.amcharts.com/docs/v3/tutorials/using-gantt-chart-display-multi-segmented-columnsbars/

第二个实际上如我所愿并在下面的问题中解释:https://www.amcharts.com/docs/v3/tutorials/gantt-chart-legend/

谢谢,希望它能帮到别人一次。