当前位置: 首页 > 知识库问答 >
问题:

Chart.js-在水平栏内书写标签?

司徒胤
2023-03-14

在图表中。js,有没有办法在“horizontalBar”图表中的水平条内写入标签?例如:

在图表中是否有类似的情况。js?

谢谢

共有3个答案

汪博达
2023-03-14

在chartjs 2.0中,您可以通过将标签旋转90度并应用负填充来实现这种效果,以便标签在“条”内向上移动。像这样的东西:

new Chart(document.getElementById(id), {
  type: 'bar',
  data: data,
  options: {
    scales: {
      xAxes: [
        {
          ticks: {
            autoSkip: false,
            maxRotation: 90,
            minRotation: 90,
            padding: -110
          }
        }
      ]
    }
  }
});

有关更多信息,请参阅勾选配置文档。

蓬英逸
2023-03-14

关于在动画onComplete中使用HTML5 CanvasfillText()方法显示数据值的原始解决方案,下面的代码将为您提供所需的:

自定义显示任何图表相关数据的关键是检查图表的数据集,如所示。数据下面的数据集。为此,我检查了不同的值在这个数据集中的位置,以及fillText方法放置它们的位置。

检查图表的数据集:图像

脚本(Chart.js 2.0

var barOptions = {
      events: false,
        showTooltips: false,
      legend: {
        display: false
      },
      scales:{
        yAxes: [{
          display: false
        }]
      },
        animation: {
        onComplete: function () {
          var ctx = this.chart.ctx;
          ctx.font = Chart.helpers.fontString(Chart.defaults.global.defaultFontFamily, 'normal', Chart.defaults.global.defaultFontFamily);
          ctx.textAlign = 'left';
          ctx.textBaseline = 'bottom';

          this.data.datasets.forEach(function (dataset) {
            for (var i = 0; i < dataset.data.length; i++) {
              var model = dataset._meta[Object.keys(dataset._meta)[0]].data[i]._model,
                  left = dataset._meta[Object.keys(dataset._meta)[0]].data[i]._xScale.left;
              ctx.fillStyle = '#444'; // label color
              var label = model.label;
              ctx.fillText(label, left + 15, model.y + 8);
            }
          });               
        }
        }
    };

jsFiddle:http://jsfiddle.net/jfvy12h9/

汪理
2023-03-14

现在有一个选项“mirror”使标签显示在条内。

水平条形图的“选项”配置示例:

options: {
    scales: {
        yAxes: [{ticks: {mirror: true}}]
    }
}

文件:http://www.chartjs.org/docs/latest/axes/cartesian/#common-配置

 类似资料:
  • 我正在使用一个chart-js条形图,它必须放在一个小的div中,所以我在寻找一种方法来使x轴上的标签水平而不是对角线。重点是为实际的条获得尽可能多的高度,因为现在标签占据了几乎40%的可用空间。 这是我的代码: 我已经暂时禁用了xAxis标签。它的工作,但理想情况下,我希望他们是水平的。想法?

  • 我试图设置一个固定的范围为单条,水平条形图在Chart.JS 标记数组仅在垂直轴上工作,但我希望在X轴上有一组固定的标签。 示例:https://altonwells.webflow.io/chart-js

  • 请参阅此小提琴:https://jsfiddle.net/4mxhogmd/1/ 我正在做图表。js如果您在fiddle中看到,您会注意到,在某些情况下,位于条形图顶部的值没有正确显示(超出画布),而我在研究如何在图表上显示数据值时遇到了这个链接。js 但在这里,他们也在同样的情况下使用工具提示来调整条内的文本。我不要这个。 我想要的是,在所有情况下,只在顶部显示值。

  • 问题内容: 我有一个部门想要显示图像,然后单击以在灯箱中打开它们。我将它们向左浮动并在线显示它们。设置overflow- x进行滚动,但是一旦行空间不足,它仍然会将图像放在下面。我想让它们内联,并在需要时显示水平滚动。 注意: 我无法更改内部图像的结构。它必须是锚点内的img。我的灯箱就这样要求它。 HTML: CSS: 我知道这是非常基本的,但是我做不到。不知道怎么了 问题答案: HTML中可能

  • 问题内容: 我需要使图像在div中水平并排显示。我怎样才能做到这一点? HTML: 问题答案: 您也可以使用CSS属性 display:inline-block 或 float:left 实现此目的。 HTML代码 CSS代码 要么

  • 我使用的是Chart.js2.6,我已经实现了horizontalLine插件,在条形图上显示平均值。它可以正常工作,但是当工具提示显示在与直线相交的位置时,它部分被水平线本身覆盖。我试图找出如何使工具提示在水平线上方绘制。 我知道工具提示是canvas元素的一部分,因此没有z-index属性。我怎样才能做到这一点? 下面是我使用的水平线插件。 ... 然后我使用以下命令将其添加到条形图选项中 它