如何使用 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>
我想使用 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>