Chart JS中可以有多个标题吗? https://www.chartjs.org/
在当前状态下,我将标题用作图表下方的描述。我还需要图表顶部的标题。有可能吗?
我的情况的另一种选择是,如果有另一种方法可以在底部实现描述并保持标题为顶部标题。
var chart = new Chart(ctx, {
type: 'line',
data: data,
options: {
title: {
display: true,
text: 'Custom Chart Title',
position: 'bottom',
}
}
});
您可以使用Plugin Core API。它提供了可用于执行自定义代码的不同钩子。在下面的代码片段中,我使用afterDraw
钩子在画布上绘制标题。这样,您可以绘制任意数量的标题,分别定义不同的样式并将它们放置在适合您的位置。
请不要在图表options
中使用,我还定义了一些布局填充。这样可以防止标题与图表条重叠。
layout: {
padding: {
top: 40
}
}
Chart.plugins.register({
afterDraw: chart => {
var ctx = chart.chart.ctx;
ctx.save();
ctx.textAlign = 'center';
ctx.textBaseline = 'middle';
ctx.font = "18px Arial";
ctx.fillStyle = "gray";
ctx.fillText('Top Title', chart.chart.width / 2, 20);
ctx.restore();
}
});
new Chart(document.getElementById('myChart'), {
type: 'bar',
data: {
labels: ['A', 'B', 'C', 'D'],
datasets: [{
data: [10, 12, 8, 6],
backgroundColor: ['red', 'blue', 'green', 'orange']
}]
},
options: {
layout: {
padding: {
top: 40
}
},
title: {
display: true,
text: 'Custom Chart Title',
position: 'bottom',
},
legend: {
display: false
},
scales: {
yAxes: [{
ticks: {
beginAtZero: true
}
}]
}
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.js"></script>
<canvas id="myChart" height="100"></canvas>