chart.js 显示具体数值

发布于 2022-09-01 22:23:00 字数 342 浏览 23 评论 0

用chart.js
rt,现在是

clipboard.png

想达到的效果如下,在每个条柱上都显示具体的数值。 怎么搞?

clipboard.png

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

古镇旧梦 2022-09-08 22:23:00

options 中加入

"animation": {
      "duration": 1,
      "onComplete": function() {
        var chartInstance = this.chart,
          ctx = chartInstance.ctx;

        ctx.font = Chart.helpers.fontString(Chart.defaults.global.defaultFontSize, Chart.defaults.global.defaultFontStyle, Chart.defaults.global.defaultFontFamily);
        ctx.textAlign = 'center';
        ctx.textBaseline = 'bottom';

        this.data.datasets.forEach(function(dataset, i) {
          var meta = chartInstance.controller.getDatasetMeta(i);
          meta.data.forEach(function(bar, index) {
            var data = dataset.data[index];
            ctx.fillText(data, bar._model.x, bar._model.y - 5);
          });
        });
      }
    },

chartjs 版本要2.5以上

参考链接

寻找我们的幸福 2022-09-08 22:23:00

clipboard.png

      options: {
        animation: {
          duration: 2000,
          onComplete: function() {
            var chart = this.chart;
            var ctx = chart.ctx;

            this.data.datasets.forEach(function(dataset, i) {
              var meta = chart.controller.getDatasetMeta(i);
              if (!meta.hidden) {
                meta.data.forEach(function(element, index) {
                  // Draw the text in black, with the specified font
                  ctx.fillStyle = layoutColors.defaultText;
                  var fontSize = 16;
                  ctx.font = Chart.helpers.fontString(fontSize, 'normal', 'Helvetica Neue');

                  // Just naively convert to string for now
                  var dataString = dataset.data[index].toString();

                  // Make sure alignment settings are correct
                  ctx.textAlign = 'center';
                  ctx.textBaseline = 'middle';

                  var padding = 5;
                  var position = element.tooltipPosition();
                  ctx.fillText(dataString, position.x, position.y - (fontSize / 2) - padding);
                });
              }
            });
          }
        }
      }
不醒的梦 2022-09-08 22:23:00

请问您如何解决的啊

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文