Javascript 如何使用图表js的内联插件内部标题?

Javascript 如何使用图表js的内联插件内部标题?,javascript,plugins,chart.js,frontend,donut-chart,Javascript,Plugins,Chart.js,Frontend,Donut Chart,我正在创建一个包含两个甜甜圈图表的JavaScript网页。为了创建图表,我使用一个函数,并使用每个图表的不同数据调用它两次。然而,当我这样做时,炸圈饼图中间的文字被改变了,这两张图表不仅仅是当前的图表。我如何分别为每个人写课文? 这是我的密码 function chart(dummynames, dummyValues, dummyColors, percentage, id) { //dummy names, dummy values and dummy colors are array

我正在创建一个包含两个甜甜圈图表的JavaScript网页。为了创建图表,我使用一个函数,并使用每个图表的不同数据调用它两次。然而,当我这样做时,炸圈饼图中间的文字被改变了,这两张图表不仅仅是当前的图表。我如何分别为每个人写课文? 这是我的密码

function chart(dummynames, dummyValues, dummyColors, percentage, id) {
  //dummy names, dummy values and dummy colors are arrays

  new Chart(document.getElementById(id), {
    type: 'doughnut',
    data: {
      labels: dummynames,
      datasets: [{
        label: "tessers",
        backgroundColor: dummyColors,
        data: dummyValues,
      }]
    },
    options: {
      title: {
        display: true,
        align: 'center',
        horizontalAlign: "center",
        verticalAlign: "bottom",
        dockInsidePlotArea: true
      },
      legend: {
        display: false
      },
      cutoutPercentage: 70,
    },
  });

  Chart.pluginService.register({
    beforeDraw: function(chart) {
      var width = chart.chart.width,
        height = chart.chart.height + 35,
        ctx = chart.chart.ctx;

      ctx.restore();
      var fontSize = (height / 200).toFixed(2);
      ctx.font = fontSize + "em sans-serif";
      ctx.textBaseline = "middle";

      var text = percentage,
        textX = Math.round((width - ctx.measureText(text).width) / 2),
        textY = height / 2;

      ctx.fillText(text, textX, textY);
      ctx.save();
    }
  })
}

您应该将
Chart.pluginService.register
放在
Chart
函数之外,从而确保只调用一次

请看一下你修改过的代码,看看它是如何工作的

Chart.pluginService.register({
绘制前:函数(图表){
变量宽度=chart.chart.width,
高度=chart.chart.height+35,
ctx=chart.chart.ctx;
ctx.save();
变量fontSize=(高度/200).toFixed(2);
ctx.font=fontSize+“em无衬线”;
ctx.textb基线=“中间”;
var text=chart.data.datasets[0]。百分比,
textX=数学圆((宽度-ctx.measureText(text.width)/2),
textY=高度/2;
ctx.fillText(text,textX,textY);
ctx.restore();
}
});
功能图(DummyName、DummyValue、DummyColor、百分比、id){
新图表(document.getElementById(id){
键入:“甜甜圈”,
数据:{
标签:dummynames,
数据集:[{
标签:“tessers”,
背景颜色:dummyColors,
数据:dummyValues,
百分比:百分比
}]
},
选项:{
标题:{
显示:对,
对齐:'居中',
水平对齐:“中心”,
垂直排列:“底部”,
dockInsidePlotArea:真
},
图例:{
显示:假
},
门诊量:70,
},
});
}
图表(['A'、'B']、[5,6]、'red'、'blue']、'26.846%'、'myChart1');
图表(['X','Y'],[7,5],'green','purple'],'19.451%,'myChart2')