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

角度图条形图上的JS数据标签

孟征
2023-03-14

我正在尝试使用angular chartjs创建一个条形图,我需要一个在每个条形图上都可见的数据标签

例子:http://jsfiddle.net/uh9vw0ao/

我尝试了以下代码在js:

 $scope.pendedLineCountOption = {
                    series: ["series1", "series2"],
                    options: {
                        legend: {
                            display: false
                        },
                        showTooltips: false,
                        animation: {
                            onComplete: function () {

                                var ctx = this.chart.ctx;
                                ctx.font = this.scales.font;
                                ctx.fillStyle = this.scales.textColor
                                ctx.textAlign = "center";
                                ctx.textBaseline = "bottom";

                                this.datasets.forEach(function (dataset) {
                                    dataset.bars.forEach(function (bar) {
                                        ctx.fillText(bar.value, bar.x, bar.y - 5);
                                    });
                                })
                            }
                        },
                    },
                    data: [[10, 20, 30]], // data array
                    labels: ["one", "two", "Three"], //array
                    header: "Header"
                };

html代码如下:

 <canvas id="pended_bar" class="chart chart-bar" chart-data="pendedLineCountOption.data" chart-labels="pendedLineCountOption.labels" chart-options="pendedLineCountOption.options" chart-series="pendedLineCountOption.series" chart-legend="true"></canvas>

上面的代码给出了数据集未定义的错误。和数据标签不可见。

请帮忙。

共有1个答案

赖渊
2023-03-14

尝试以下选项:

hover: {
    animationDuration: 0
},
animation: {
    onComplete: function () {
        var ctx = this.chart.ctx;
        var metaInfo = null;
        ctx.font = '12px "Helvetica Neue", Helvetica, Arial, sans-serif';
        ctx.fillStyle = 'gray';
        ctx.textAlign = "center";
        ctx.textBaseline = "bottom";

        _.forEach(this.config.data.datasets, function (dataset, i) {
            metaInfo = dataset._meta[Object.keys(dataset._meta)[i]];
            _.forEach(metaInfo.data, function (bar) {
                ctx.fillText(scope.data[bar._index], bar._model.x, bar._model.y);
            });
        })
    }
},
tooltips: {
    enabled: false
}

\uu-洛达斯库(您可以像上面的代码一样使用forEach

我使用版本1.1.1的angular-chart.js

 类似资料:
  • 我正在尝试使用我自己的标签制作Seaborn条形图,代码如下: 但是,我得到一个错误: 有什么好处?

  • 问题内容: 我正在尝试使用角度的Kendo图表,但在显示数据时遇到问题,这是我的代码: HTML: Javascript: 问题是从服务器获取数据后图表未更新,我尝试过这样刷新图表(但没有运气): 并在以下方法中调用此方法: 而且我也尝试过定义相同的函数,但是什么也没定义。有没有什么办法解决这一问题 ? 问题答案: 它的文档记录不充分,但是要获得具有远程数据绑定的UI控件以在从服务器返回数据后进行

  • 我创建了一个水平条形图w/chart.js,需要在y轴上创建两组标签,但只能创建一个。 例如,参见下图,在y轴上,我有一组单词“other”和“paper ”,计数分别为2和3;在这个分组和下面的两个分组中,我还需要显示与这两个词相关的月份——比如五月。 有办法做到这一点吗? 附言:在附加的图像中,我将镜像设置为true,但如果解决方案能给我所需的输出,我愿意关闭镜像。 到目前为止,我已经查看了这

  • 我正在尝试使用2.3.0绘制chart.js水平条形图- 但它只显示一个小节。我错过了什么?

  • 我正在尝试实现chartJS条形图,并使用图例过滤条形图。我想将标签列表设置为空,因为这样可以清楚地删除条。我正在寻找一种在X轴上设置标记的方法,因为现在文本中的标记为空。 JSIDLE: https://jsfiddle.net/m1eorjwv/1/ 非常感谢,阿龙

  • 我有一个条形图,每个条形图上都有一个标签。 悬停前: 悬停后: 这是我的代码: 我使用的chartjs版本是2.7.3