如何使用 ChartJS 添加在 Canvas 上显示 "no data" 的背景?

how to add a background that display "no data" on Canvas using ChartJS?

我想使用 ChartJS V2.9.3 添加一个背景文字,说明在这种情况下没有可用数据。

例如,我想从这个(空白画布)开始:

对此(带文字显示的背景颜色):

你对此有什么建议吗?

提前致谢

您可以使用 global plugin 来绘制 'No data available' 文本,以防没有数据可用。

Chart.plugins.register({
  afterDraw: chart => {
    if (chart.data.datasets[0].data.length === 0) {
      var ctx = chart.chart.ctx;
      ctx.save();
      ctx.textAlign = 'center';
      ctx.textBaseline = 'middle';
      ctx.font = "22px Arial";
      ctx.fillStyle = "gray";
      ctx.fillText('No data available', chart.chart.width / 2, chart.chart.height / 2);
      ctx.restore();
    }
  }
});

new Chart(document.getElementById('canvas'), {
  type: 'bar',
  data: {
    labels: [],
    datasets: [{
      data: []
    }]
  },
  options: {
    legend: {
      display: false
    }
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.js"></script>
<canvas id="canvas" height="80"></canvas>