ChartJS:chartjs-plugin-datalabels未正确显示值

4xrmg8kj  于 2024-01-07  发布在  Chart.js
关注(0)|答案(1)|浏览(164)

我尝试使用Chart.js创建一个图表,我使用4.4.1版本创建一个水平图表。
在我的代码中,数据标签当前显示为“x:222,y:1”,但我打算让它们只显示主值,即“222”。
我正在使用下面的脚本标签:

<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/[email protected]/dist/chart.umd.min.js" ></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]"></script>

字符集
下面是我的代码:

Chart.register(ChartDataLabels);
new Chart('myChart', {
  type: 'bar',
  plugins: [{
    afterInit: chart => {
      let dataset = chart.data.datasets[0];
      chart.data.datasets = chart.data.labels.map((l, i) => ({
        label: l,
        data: [{ x: dataset.data[i], y: i }],
        backgroundColor: dataset.backgroundColor[i],
        categoryPercentage: 1
      }));
      chart.data.labels = undefined;
    },
    beforeLayout: chart => {
      chart.options.scales.y1.labels = chart.data.datasets.filter((ds, i) => !chart.getDatasetMeta(i).hidden).map(ds => ds.label);
    }
  }],
  data: {     
    labels: ['Red', 'Blue', 'Green', 'Teal', 'Yellow', 'Purple', 'Orange', 'Black'],
    datasets: [{
      data: [123, 321, 213, 111, 222, 333, 234, 444],
      backgroundColor: ['Red', 'Blue', 'Green', 'Teal', 'Yellow', 'Purple', 'Orange', 'Black']
    }]
  },
  options: {
    indexAxis: 'y',
    maintainAspectRatio: false,
    plugins: {
        datalabels: {
        color: 'white',
      },
      legend: {
        position: 'top'
      },
      tooltip: {
        callbacks: {
          title: () => null
        }
      }
    },
      scales: {
          x: {
              title: {
                  display: true,
                  text: 'xAxis'
              }

          },
          y: {
                  display: false,
          },
          y1: {
              title: {
                  display: true,
                  text: 'yAxisLabel'
              },
              offset: true
          }
      }
  }, 
 
});


输出量:


的数据

tvokkenx

tvokkenx1#

您可以使用formatter函数自定义数据标签的显示文本。
在本例中,您将显示x作为显示的数据标签。

datalabels: {
  ...,
  formatter: function (value, context) {
    return value.x;
},

字符集
Demo @ StackBlitz


的数据

相关问题