Amchart 4轴范围

问题描述 投票:0回答:1

请帮我。我希望轴的范围与它们在一段时间内重复,例如在这个例子中,如果每个范围只有一个开始和结束日期,则轴范围只显示一次:

https://www.amcharts.com/demos/stacked-area/

但是如果每个轴范围有多个开始日期和结束日期怎么办?是否可以显示它们?例如:

  • 1994年 - 加速罚款增加
  • 1995年 - 摩托车费用介绍
  • 1996年 - 加速罚款增加
  • 1997年 - 摩托车费用介绍
  • 1998年 - 加速罚款增加

此代码无效。我有2轴范围测试a和测试b。

function createRange(axis, from, to, title) {
  var range = axis.axisRanges.create();
  range.value = from;
  range.endValue = to;
  range.grid.stroke = chart.colors.getIndex(7);
  range.grid.strokeOpacity = 0.6;
  range.grid.strokeDasharray = "5,2";
  range.label.text =  title;
  range.label.inside = true;
  range.label.rotation = 90;
  range.label.horizontalCenter = "right";
  range.label.verticalCenter = "middle";
}

createRange(dateAxis, new Date(Date.parse(testa_start)), new Date(Date.parse(testa_end)), "Test A");
createRange(dateAxis, new Date(Date.parse(testb_start)), new Date(Date.parse(testb_end)), "Test B");

请帮忙。非常感激。谢谢

javascript amcharts
1个回答
1
投票

你应该设置range.date而不是range.value

看到具有固定功能的完整工作code pen

function createRange(axis, from, to, title) {
    var range = axis.axisRanges.create();
    range.date = from;
    range.endValue = to;
    range.grid.stroke = chart.colors.getIndex(7);
    range.grid.strokeOpacity = 0.6;
    range.grid.strokeDasharray = "5,2";
    range.axisFill.fill = chart.colors.getIndex(7);
    range.axisFill.fillOpacity = 0.2;
    range.label.text =  title;
    range.label.inside = true;
    range.label.rotation = 90;
    range.label.horizontalCenter = "right";
    range.label.verticalCenter = "middle";
}

createRange(dateAxis, new Date(2005, 1, 1), new Date(2007, 1, 1), 'Test');
© www.soinside.com 2019 - 2024. All rights reserved.