Chart js多个标题

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

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',
        }
    }
});
javascript chart.js
1个回答
0
投票

您可以使用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>
© www.soinside.com 2019 - 2024. All rights reserved.