如何使用ChartJS添加在Canvas上显示“无数据”的背景?

问题描述 投票:0回答:1

我想使用ChartJS V2.9.3添加一个背景,上面写着没有可用数据的文本。

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

至此(带有文本显示的背景色:

no more empty background

您对此有何建议?

提前谢谢您

javascript html charts chart.js chartjs-2.6.0
1个回答
1
投票

如果没有可用数据,可以使用global plugin绘制“无可用数据”文本。

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>
© www.soinside.com 2019 - 2024. All rights reserved.