amChart 日期轴偏移量

amChart Date Axis offset

时间轴标签和图表上的数据点不对齐,最佳解释见图片

有人知道如何解决这个问题吗?

const ratingTrendChart = am4core.create("chart", am4charts.XYChart);

ratingTrendChart.legend = new am4charts.Legend();
ratingTrendChart.legend.useDefaultMarker = true;
const marker = ratingTrendChart.legend.markers.template.children.getIndex(0);
marker.cornerRadius(6, 6, 6, 6);
marker.height = 12;
ratingTrendChart.legend.markers.template.height = 12;
ratingTrendChart.legend.labels.template.text = "[{color}]{name}[/]";
ratingTrendChart.legend.labels.template.fontSize = 12;
ratingTrendChart.legend.paddingBottom = 0;
ratingTrendChart.legend.contentAlign = "left";

ratingTrendChart.numberFormatter.numberFormat = "#.00";

const dateAxis = ratingTrendChart.xAxes.push(new am4charts.DateAxis());
const valueAxis = ratingTrendChart.yAxes.push(new am4charts.ValueAxis());

// Add vertical scrollbar
ratingTrendChart.scrollbarY = new am4core.Scrollbar();
ratingTrendChart.scrollbarY.marginLeft = 15;

// Add cursor
ratingTrendChart.cursor = new am4charts.XYCursor();
ratingTrendChart.cursor.behavior = "zoomY";
ratingTrendChart.cursor.lineX.disabled = true;
ratingTrendChart.cursor.xAxis = dateAxis;
ratingTrendChart.cursor.yAxis = valueAxis;

valueAxis.min = 1;
valueAxis.max = 5;
valueAxis.strictMinMax = true;
valueAxis.keepSelection = true;

dateAxis.baseInterval = {
  timeUnit : "week",
  count : 1
}

const data = [
  {
    "date": new Date("2021-02-05T07:00:00.000Z"),
    "safety":2.333333,
    "facility":2.333333,
    "staff":2.333333,
    "Overall":2.666666,
    "satisfied":3.666666
  },
  {
    "date": new Date("2021-02-12T07:00:00.000Z"),
    "satisfied":4.333333,
    "safety":4.5,
    "Overall":4.571428,
    "facility":5,
    "staff":5},
  {
    "date": new Date("2021-02-19T07:00:00.000Z"),
    "staff":1,
    "satisfied":3,
    "Overall":3.5,
    "safety":5,
    "facility":5
  }
];

ratingTrendChart.data = data;

const names = ["safety","facility","staff","Overall","satisfied"];

names.forEach(q => {
  let s = ratingTrendChart.series.push(new am4charts.LineSeries());
  s.dataFields.valueY = q;
  s.name = q;
  
  s.dataFields.dateX = 'date';
  s.tooltipText = "{name}: [bold]{valueY}[/]";
  let bullet = s.bullets.push(new am4charts.Bullet());
  let circle = bullet.createChild(am4core.Circle);
  circle.width = 5;
  circle.height = 5;
  circle.fill = am4core.color("white");
});
#chart {
  height: 400px;
  width: 700px;
}
<script src="https://cdn.amcharts.com/lib/4/core.js"></script>
<script src="https://cdn.amcharts.com/lib/4/charts.js"></script>
<script src="https://cdn.amcharts.com/lib/4/themes/material.js"></script>
<script src="https://cdn.amcharts.com/lib/4/lang/de_DE.js"></script>
<script src="https://cdn.amcharts.com/lib/4/geodata/germanyLow.js"></script>
<script src="https://cdn.amcharts.com/lib/4/fonts/notosans-sc.js"></script>

<div id="chart">
  <div>

更新了代码片段。这几乎就是我正在使用的代码,只是用硬编码数据替换了数据调用。

如果没有更多文字,我不会让我提交这个...所以无视但只是想在这里闲逛一下。

选项 1:网格上的数据点

dateAxis.renderer.labels.template.location = 0.5;
dateAxis.renderer.grid.template.location = 0.5;

演示:https://jsfiddle.net/m40tLbof/

选项 2:网格之间的数据点

dateAxis.renderer.labels.template.location = 0.5;

演示:https://jsfiddle.net/m40tLbof/1/