1

在玩了几个小时的 canvasJS 之后,我找不到一种以优雅的方式从图表中动态删除点的方法。我想要做的是允许用户选择/取消选择他想看到的数据。例如,在显示从 2014 年 1 月到 2014 年 12 月的数据(X 轴)的图表上,如果用户选择不显示 2014 年 2 月,我会遍历 dataPoints,删除该点并调用 render()。与二月相对应的数据列随即消失,但在 X 轴上,二月的标签仍然显示,形成一个“洞”。如果取消选择第一项或最后一项,则结果为OK,则不显示该月份。我曾尝试对 x 使用 Date(),尝试对 x 使用 Integers 并将日期格式化为标签,但没有一个对我有用。所以,在开始寻找另一种解决方案之前,我想知道你们是否可以帮助我弄清楚我做错了什么。此致!!

4

1 回答 1

3

我已经完成了这个问题并创建了一个例子。这是JSFiddle

这是我使用的逻辑:

for(var i=0; i<dataPoints.length ; i++){
        var dp = dataPoints[i];
        var dataPointMonth = (new Date(dp.label).getMonth());
        if( dataPointMonth !== monthToHide){
            dp.x = index++;
            newDataPoints.push(dp);
        }
}

在这种情况下,您可以使用标签而不是 x 值,并使用formatDate方法来根据需要格式化日期值,并使用labelFormatter进行进一步定制。

labelFormatter : function ( e ) {
            return CanvasJS.formatDate( e.label, "MMM");  
}
于 2015-11-23T13:25:48.563 回答