canvas js:如何动态删除数据点,但不创建“;“洞”;在图表中
canvas js: how to remove a datapoint dynamically but without creating a "hole" in chart?
在玩了几个小时的canvasJS之后,我找不到一种以优雅的方式从图表中动态删除点的方法。我想做的是允许用户选择/取消选择他想看到绘制的数据。例如,在显示2014年1月至2014年12月数据的图表上(X轴),如果用户选择不显示2014年2月,我会遍历dataPoints,删除这样的点并调用render()。数据对应于二月的列随后消失,但在X轴上,二月的标签仍然显示,从而创建了一个"洞"。如果取消选择"第一个"或"最后一个"项目,则结果为"确定",不显示该月份。我试过对x使用Date(),对x使用Integers,并将Date格式化为标签,但都不适用。所以,在开始寻找另一个解决方案之前,我想知道你们是否能帮我弄清楚我做错了什么。顺致敬意,
我已经完成了这个问题并创建了一个示例。这是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");
}
相关文章:
- 使用AngularJS Directive WHITOUT$scope创建一个动态html元素
- 为json对象创建一个动态表
- 为node.js创建一个动态的restful api
- 我如何创建一个动态地图来显示我们公司的位置
- 如何让 AngularJS 选取在 JavaScript 中创建的动态绑定
- 删除在加载dom之后创建的动态元素
- 正在创建具有动态键的对象
- 用Javascript创建一个动态选择对象
- 我怎样才能创建一个动态表-Crossfilter-dc.js
- 创建一个动态图像上传PHP
- 使用bootstrap,jquery和javascript创建一个动态主页
- 如何使用自定义指令创建 angularjs 动态模板
- 如何在 QML 中发生相同事件后创建/销毁动态对象
- 创建具有动态属性的对象数组
- 创建一个动态HTML文件并在Google Apps脚本中执行它
- 创建一个动态更新表单,从 MYSQL 数据库采购
- 将使用createElement(Javascript)创建的动态数据保存到数据库
- 创建的动态组合框不起作用
- 另一种在javascript中创建随机动态url的方法/阻止wpengine缓存
- 创建具有动态参数排列的方法/函数