You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Chart.js中仅为散点数据集显示数据标签?

解决Chart.js仅在散点数据集显示数据标签的问题

你当前的问题是因为在全局配置中开启了datalabels插件,导致所有数据集(包括折线)都应用了标签显示规则。可以通过两种方式解决:

方法一:全局禁用,仅在散点数据集单独启用

先在全局配置里关闭数据标签,然后给每个散点数据集单独配置启用标签:

  1. 修改全局plugins.datalabels配置,添加display: false:
plugins: {
  datalabels: {
    display: false, // 全局默认关闭所有标签
    anchor: 'end',
    align: 'top',
    font: {
      weight: 'bold',
      size: 16
    }
  }
}
  1. 在每个散点数据集(mark1_dataset到mark4_dataset)中添加plugins.datalabels配置,单独开启显示:
var mark1_dataset = {
  label: 'Start',
  borderWidth: 2,
  borderColor: '#FF0000',
  fill: false,
  type: 'scatter',
  data: [{
    x: '2011-03-29',
    y: 0
  }],
  pointRadius: 12,
  plugins: {
    datalabels: {
      display: true // 单独开启该散点数据集的标签
    }
  }
};

其余三个散点数据集做同样修改即可。

方法二:使用过滤函数仅显示散点标签

在全局datalabels配置中添加filter回调,只允许类型为scatter的数据集显示标签:

plugins: {
  datalabels: {
    anchor: 'end',
    align: 'top',
    font: {
      weight: 'bold',
      size: 16
    },
    filter: function(context) {
      // 仅当数据集类型为scatter时渲染标签
      return context.dataset.type === 'scatter';
    }
  }
}

这种方式无需修改每个数据集,直接通过全局过滤实现需求,更简洁高效。

两种方法都能实现仅散点显示数据标签的效果,可根据偏好选择。

内容的提问来源于stack exchange,提问作者Claudio Martinez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 10:40:37