首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >图表JS工具提示货币问题-堆叠条形图

图表JS工具提示货币问题-堆叠条形图
EN

Stack Overflow用户
提问于 2022-04-29 10:22:42
回答 1查看 235关注 0票数 0

我使用ChatJS,我想在工具提示中的每个数字之后添加一个欧元符号。在我的大多数图表上,它工作得很完美,但是堆叠的条形图给我带来了麻烦。

下面是一个类似于我的代码的示例(只是一个基本的例子)

代码语言:javascript
复制
var barChart = new Chart(ctx_barChart, {
  type: 'bar',
  data: {
    labels: ["Fruits"],
    datasets: [{
        label: [
          ["Apple"]
        ],
        data: [12],
        backgroundColor: 'blue',
        barThickness: 80,
      },
      {
        label: ["Banana"],
        data: [15],
        backgroundColor: 'red',
        barThickness: 80,
      },
    ]
  },
  options: {
    maintainAspectRatio: false,
    indexAxis: 'y',
    responsive: true,
    scales: {
      x: {
        stacked: true,
        display: false,
      },
      y: {
        stacked: true,
        display: false,
        mirror: true,
      }
    },
    plugins: {
      tooltip: {
        callbacks: {
          label: function(context) {
            let label = context.dataset.label || '';

            if (label) {
              label += ': ';
            }
            if (context.parsed.y !== null) {
              label += new Intl.NumberFormat('en-US', {
                style: 'currency',
                currency: 'EUR'
              }).format(context.parsed.y);
            }
            return label;
          }
        }
      },
      legend: {
        display: false
      },
      title: {
        display: false,
      },
    },
  },
});

工具提示都显示0,00美元,但我的值12和15没有。有人有建议吗?

EN

回答 1

Stack Overflow用户

发布于 2022-04-29 13:20:19

您应该使用context.parsed.x而不是context.parsed.y,因为它是水平条形图。

请看一看你的修正代码,看看它是如何工作的。

代码语言:javascript
复制
new Chart('barChart', {
  type: 'bar',
  data: {
    labels: ["Fruits"],
    datasets: [{
        label: "Apple",
        data: [12],
        backgroundColor: 'blue',
        barThickness: 80,
      },
      {
        label: "Banana",
        data: [15],
        backgroundColor: 'red',
        barThickness: 80,
      },
    ]
  },
  options: {
    maintainAspectRatio: false,
    indexAxis: 'y',
    responsive: true,
    scales: {
      x: {
        stacked: true,
        display: false,
      },
      y: {
        stacked: true,
        display: false,
        mirror: true,
      }
    },
    plugins: {
      tooltip: {
        callbacks: {
          label: ctx => ctx.dataset.label + ': ' + new Intl.NumberFormat('de-DE', { style: 'currency', currency: 'EUR' }).format(ctx.parsed.x)
        }
      },
      legend: {
        display: false
      },
      title: {
        display: false,
      },
    },
  },
});
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/3.7.1/chart.min.js"></script>
<canvas id="barChart" height="100"></canvas>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72056455

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档