我一直在研究我的问题,但是没有找到最佳解决方案。请帮忙:
我的x轴具有以下可能值0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,21,30,60,90。我想创建一个折线图,在我的数据点之间有不规则的间隔(请找图1)。换句话说,我不想在我的图中绘制0值,但我需要这些点用于我的x轴。
我现在这样做的方法是将我的轴视为日期类别轴。接下来将parseDates设置为true。然后使用labelFunction将我的x轴标签更改回所需的值。以下是我的代码:
chart = new AmCharts.AmSerialChart();
chart.legend = "useGraphSettings";
chart.dataDateFormat = "YY";
chart.valueAxes = [{
"integersOnly": false,
"position": "left",
"axisAlpha": 0,
"dashLength": 5
}];
chart.categoryField = "age";
chart.categoryAxis = {
"parseDates": true,
"labelFunction": formatValue,
"minPeriod": "YYYY",
"minorGridEnabled": true
};
function formatValue(date){
return parseInt(date) - 1900;
};
然而,这"作弊"解决方案并不总是有效,因为有时候我的x轴并不需要所有的值。在我的示例中,我的图表仅从0到14(不总是从0到14)绘制。问题是数据点与标签不对齐。 (请参见图2)。
我猜这应该是比将x轴视为日期更好的方法。请告知如何实现这一目标。谢谢!