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

如何在 ChartJS 中为条形图中的每个条形获取不同的标签?

蔺敏达
2023-03-14

过去几周我一直在使用ChartJS,我已经习惯了,但是,我试图在我的条形图中添加单独的标签,但我无法解决这个问题。

下面是我正在使用的代码。

var config = {
    type : 'bar',
    data : {
        datasets : [ {
            label: numberOfFailures, //This line is the problem
            data : failureData,
            backgroundColor : colours,

        } ],
        labels :  labels 
    },
    options : {
        responsive : true,
        legend : {
            position : 'bottom'
        }
    }
};

如果我将单词标签更改为标签,它们根本不会显示,但当它说标签时,它们都会一起显示。我想要的是数组元素1出现在栏1上,等等。

共有1个答案

尉迟安民
2023-03-14

如果您的目标是从数组中获取值,并使它们沿条形图的底部显示,以便每个数组值都是条形图的标签,则需要设置<code>数据。标签value,而不是data.dataset。标签值。

例如,此基本图表取自条形图数据结构的 Chart.js 文档,并演示如何使用月份名称数组来标记条形图。请注意,标签栏将进入“数据.标签”节点。

var data = {
    labels: ["January", "February", "March", "April", "May", "June", "July"],
    datasets: [
        {
            label: "My First dataset",
            backgroundColor: "rgba(255,99,132,0.2)",
            borderColor: "rgba(255,99,132,1)",
            borderWidth: 1,
            hoverBackgroundColor: "rgba(255,99,132,0.4)",
            hoverBorderColor: "rgba(255,99,132,1)",
            data: [65, 59, 80, 81, 56, 55, 40],
        }
    ]
};

如果您以编程方式为每个数据点创建一个带有一个标签的数组,那么它可能看起来像这样:

js prettyprint-override">var chartConfig = {};

for (score = 0; score < maxScore; ++score) {
    chartConfig.scoreLabels[score] = score;
    chartConfig.scoreData[score] = howManyAchievedScore(score);
}

var data = {
    labels: chartConfig.scoreLabels,
    datasets: [
        {
            label: "Number of players who achieved score",
            backgroundColor: "rgba(255,99,132,0.2)",
            borderColor: "rgba(255,99,132,1)",
            borderWidth: 1,
            hoverBackgroundColor: "rgba(255,99,132,0.4)",
            hoverBorderColor: "rgba(255,99,132,1)",
            data: chartConfig.scoreData,
        }
    ]
};

您不必在单个对象内创建标签和数据值,但如果您可以将图表配置数据分组到一个对象中,以便可以使用一个参数将其从一个函数传递到另一个函数,则通常会更整洁。

data.dataset。labelvalue做了一些不同的事情,提供了显示在图表图例中的文本,以及当您将鼠标悬停在条形图上时显示的工具提示。

 类似资料:
  • 我在一个项目中使用ChartJS,我需要为条形图中的每个条形图使用不同的颜色。 下面是条形图数据集的示例: 有没有什么方法可以把每个酒吧涂成不同的颜色?

  • 我正在尝试使用ChartJS创建一个条形图,如下所示: 我想知道如何分别为每个条添加渐变颜色,并根据它们的高度添加渐变颜色。 我在这里找到了一个非常接近的解决方案,但它为整个图形设置了,而不是单个条。 另外,如果我为每个条创建渐变,这个解决方案更接近,但是,我想根据条的高度设置渐变。 有没有办法指定根据酒吧高度,而不是坐标上的

  • 我希望这个图中的条形图有我自己选择的不同颜色。我不想使用随机的颜色为酒吧(或一组酒吧)。

  • 我试图理解他们条形图上的ChartJS文档。这对我来说没有意义,因为顶部的标签在一次意义上看起来似乎只适用于第一个栏(基于颜色),在另一种意义上,它适用于整个图表(它是唯一一个不在工具提示中的标签,它位于前面和中间) 我一直在努力使它更像他们的折线图,它显示了一个带有标签的图例和一个与图表上每条线相关的彩色正方形。(他们没有多行图表的示例,但它确实是这样工作的)。 我希望在顶部有一个图例,表示浅绿

  • 在自定义图表上工作,可以根据数据提供的值确定条形图或水平条形图中的条形图的厚度,而不是使用barThickness或barPer百分比/类别百分比的预设宽度。 目标:我可以用包含值和

  • 在一个html页面中,我有一个选择菜单(a, b, c, d)和一个条形图(a, b, c, d)。我想做的是在选择菜单中选择的条形图中突出显示相应的条形图。