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

Chart.js在饼图上显示标签

贺玉石
2023-03-14

我最近更新了我的charts.js库到最新版本(2.5.0)。这个版本不显示图表上的标签。

我有一个在《小提琴手:http://jsfiddle.net/g6fajwg8》上工作的例子。

但是,我完全按照示例中的方式定义了我的图表,但仍然看不到图表上的标签。

注意:在Google和Stackoverflow上有很多这样的问题,但其中大多数都是关于以前的版本,这些版本在它们上运行良好。

var config = {
    type: 'pie',
    data: {
        datasets: [{
            data: [
              1200,
              1112,
              533,
              202,
              105,
            ],
            backgroundColor: [
              "#F7464A",
              "#46BFBD",
              "#FDB45C",
              "#949FB1",
              "#4D5360",
            ],
            label: 'Dataset 1'
        }],
        labels: [
          "Red",
          "Green",
          "Yellow",
          "Grey",
          "Dark Grey"
        ]
    },
    options: {
        responsive: true,
        legend: {
            position: 'top',
        },
        title: {
            display: true,
            text: 'Chart.js Doughnut Chart'
        },
        animation: {
            animateScale: true,
            animateRotate: true
        }
    }
};

window.pPercentage = new Chart(ChartContext, config);

共有3个答案

松思源
2023-03-14

使用chartjs插件数据标签并设置如下选项

 options: {
                plugins: {
                    datalabels: {
                        formatter: function (value, context) {
                            return context.chart.data.labels[
                                context.dataIndex
                            ];
                        },
                    },
                },
            },

它将呈现标签文本

金令
2023-03-14

使用数据标签插件 https://chartjs-plugin-datalabels.netlify.app/

HTML集成

<script src="https://cdn.jsdelivr.net/npm/chartjs-plugin-datalabels@0.7.0"></script>

必须在图表之后加载。js库!

你的代码会是这样的

options: {
        plugins: {
            // Change options for ALL labels of THIS CHART
            datalabels: {
                color: '#36A2EB'
            }
        }
},
data: {
   datasets: [{
            // Change options only for labels of THIS DATASET
            datalabels: {
                color: '#FFCE56'
            }
   }]
}

如果要覆盖此项,则默认情况下将数据集的值视为标签。e、 g按标签

options: {
        plugins: {
            datalabels: {
                formatter: function(value, context) {
                    return context.chart.data.labels[context.dataIndex];
                }
            }
        }
}
王昆
2023-03-14

似乎没有这样的内置选项。

然而,对于这个选项有一个特殊的库,它调用:“Chart PieceLabel”。

这是他们的演示。

将他们的脚本添加到项目后,您可能需要添加另一个名为“pieceLabel”的选项,并根据自己的喜好定义属性值:

pieceLabel: {
    // mode 'label', 'value' or 'percentage', default is 'percentage'
    mode: (!mode) ? 'value' : mode,

    // precision for percentage, default is 0
    precision: 0,

    // font size, default is defaultFontSize
    fontSize: 18,

    // font color, default is '#fff'
    fontColor: '#fff',

    // font style, default is defaultFontStyle
    fontStyle: 'bold',

    // font family, default is defaultFontFamily
    fontFamily: "'Helvetica Neue', 'Helvetica', 'Arial', sans-serif"
}
 类似资料:
  • 我一直在使用Chart.Js,但由于时间限制和个人对D3等人的SVG路线的偏好,我尽最大努力避免进入画布本身。 我在仪表板页面上混合了各种图表,除了一个问题外,其他一切看起来都很棒——你必须将鼠标悬停在饼图段上才能看到潜在的%或值。 对于仪表板视图,我的用户更喜欢快速查看数据段上的一些数据标签,就像Excel一样,可能更容易用图像进行解释: https://support.office.com/e

  • 我使用Chart.js库绘制条形图,我想显示工具提示不仅在条形图悬停,而且在x轴标签悬停该条形图。我找到了用于配置的方法,但它只允许我访问当前悬停栏的数组,这是没有用的。 那个么,我怎样才能访问鼠标事件,并从那个里获取位置,将其与条形标签的位置进行比较呢?还是有别的办法? 我当前的配置: 它只打印出悬停条数据,但我坚持要想出如何扩展它以满足我需要的行为。

  • 我不知道如何用图表来做这件事。js。 请帮帮我。 我的Javascript代码: php代码:

  • Highcharts 饼图 以下实例演示了显示图例饼图。 我们在前面的章节已经了解了 Highcharts 基本配置语法。接下来让我们来看下其他的配置。 配置 series 配置 设置 series 的 type 属性为 pie ,series.type 描述了数据列类型。默认值为 "line"。 var series = { type: 'pie' }; plotOptions plo

  • 在Angular项目中,我正在使用chart.js最新版本2.9.3实现图表 我实现了圆环图,完美地堆叠条形图,现在我必须实现在y轴上包含数据标签的堆叠条形图。 从图表上看也是如此。js文档:使用chartjs插件datalabels插件。我试图在这里显示标签。我得到了cli错误:decalare module chart.js 为了解决上面的错误,我安装了“@ types/chart . js”

  • 我有以下使用chart.js的折线图示例。我想展示: 图例的指针光标