要将AmCharts的时间戳数据点格式化为最接近的日期,可以使用AmCharts的DateAxis类的baseInterval属性和dateFormats属性来实现。下面是一个示例代码:
// 创建一个日期格式化函数
function formatDate(date) {
var year = date.getFullYear();
var month = ("0" + (date.getMonth() + 1)).slice(-2);
var day = ("0" + date.getDate()).slice(-2);
return year + "-" + month + "-" + day;
}
// 创建一个AmCharts图表实例
var chart = am4core.create("chartdiv", am4charts.XYChart);
// 设置日期格式化
chart.dateFormatter.dateFormat = "yyyy-MM-dd";
// 创建一个DateAxis实例并设置baseInterval和dateFormats属性
var dateAxis = chart.xAxes.push(new am4charts.DateAxis());
dateAxis.baseInterval = {
timeUnit: "day",
count: 1
};
dateAxis.dateFormats.setKey("day", "[bold]MMM d[/]");
// 添加数据到图表
chart.data = [{
"date": 1585765200000,
"value": 100
}, {
"date": 1585851600000,
"value": 200
}, {
"date": 1585938000000,
"value": 150
}];
// 创建一个ValueAxis实例
var valueAxis = chart.yAxes.push(new am4charts.ValueAxis());
// 创建一个LineSeries实例并设置数据字段
var series = chart.series.push(new am4charts.LineSeries());
series.dataFields.valueY = "value";
series.dataFields.dateX = "date";
// 绘制图表
chart.cursor = new am4charts.XYCursor();
// 更新x轴数据标签
dateAxis.renderer.labels.template.adapter.add("text", function(text) {
var date = new Date(text);
return formatDate(date);
});
在上面的代码中,我们首先创建了一个日期格式化函数formatDate,它将日期对象格式化为"yyyy-MM-dd"的字符串。然后,我们创建了一个AmCharts图表实例,并设置了日期格式化的dateFormat属性。
接下来,我们创建了一个DateAxis实例,并将其添加到图表的x轴。我们设置了baseInterval属性为{ timeUnit: "day", count: 1 },这表示x轴的刻度将以天为单位,且每个刻度之间的间隔为1天。我们还使用dateFormats属性设置了"day"时间单位的日期格式。
然后,我们添加了一些数据到图表,并创建了一个ValueAxis实例用于y轴。接着,我们创建了一个LineSeries实例,并设置了数据字段。最后,我们绘制了图表,并使用adapter来更新x轴上的数据标签,将时间戳格式化为最接近的日期。
请注意,上述代码中的"chartdiv"是一个用于显示图表的HTML元素的ID,您需要根据自己的需求将其替换为实际的元素ID。
上一篇:amCharts的模式背景颜色
下一篇:Amcharts的缩放不正确