Chart.js 如何跳过绘制空/零值及其在工具提示上的值

Chart.js 如何跳过绘制空/零值及其在工具提示上的值,chart.js,Chart.js,我想跳过chartjs折线图上的零值的一些点 我怎么做呢 预期结果 样本数据 可以使用onAnimationComplete功能禁用点和工具提示显示 var ctx = document.getElementById("myChart").getContext("2d"); var myLineChart = new Chart(ctx).Line(data, { animation: false, onAnimationComplete: function () {

我想跳过
chartjs
折线图上的
零值的一些点

我怎么做呢

预期结果

样本数据
可以使用onAnimationComplete功能禁用点和工具提示显示

var ctx = document.getElementById("myChart").getContext("2d");
var myLineChart = new Chart(ctx).Line(data, {
    animation: false,
    onAnimationComplete: function () {
        // prevents the update from triggering an infinite loop
        if (!this.clearCycle) {
            this.clearCycle = true;

            this.datasets.forEach(function (dataset) {
                dataset.points.forEach(function (point) {
                    if (point.value === 0) {
                        point.display = false;
                        point.hasValue = function () {
                            return false;
                        }
                    }
                })
            })

            this.update();
        }
        else
            delete this.clearCycle;
    }
});

小提琴-



如果您使用的是动画,则逻辑需要移动到onAnimationProgress并仅执行一次,除非您不介意在动画进行时看到点。

我不确定是否可以使用早期版本的Chart.js 2,因为工具提示只需将此属性添加到图表对象:

filter: x => return x.yLabel > 0
简单的一行。 我知道它很旧,但人们可能仍然感到困惑。

您可以在数据中添加文本“N/a”而不是“0”值:

data: ["7", "25", "75", "78", "10", "N/A", "77", "02", "44", "N/A"]
结果是:


下面是一个示例:

在哪里绑定筛选器属性。我发现了一个可行的
data: ["7", "25", "75", "78", "10", "N/A", "77", "02", "44", "N/A"]