Chart.js v2.0:仅针对一个数据集的工具提示(Chart.js v2.0: Tooltip only for one dataset)

我有这3个数据集的图表:

this.myChart = new Chart(this.ctx, {
  type: 'bar',
  data: {
    labels: labels,
    datasets: [
      { type: 'line', data: data3 },
      { type: 'bar', data: data1, backgroundColor: "#3EAFD5" },
      { type: 'bar', data: data2, backgroundColor: "#D24B47" }
    ]
  }
}
 

如何仅为第一个数据集显示工具提示(类型:'line')?

I have graph whit this 3 datasets:

this.myChart = new Chart(this.ctx, {
  type: 'bar',
  data: {
    labels: labels,
    datasets: [
      { type: 'line', data: data3 },
      { type: 'bar', data: data1, backgroundColor: "#3EAFD5" },
      { type: 'bar', data: data2, backgroundColor: "#D24B47" }
    ]
  }
}
 

How can I do to show tooltip only for first dataset (type: 'line')?

最满意答案

您可以覆盖图表对象的getElementAtEvent方法

var originalGetElementAtEvent = myChart.getElementAtEvent; myChart.getElementAtEvent = function () { return originalGetElementAtEvent.apply(this, arguments).filter(function (e) { return e._datasetIndex == 0; }); }

其中myChart是您的图表对象。


小提琴 - http://jsfiddle.net/x4shhvbk/

You can just override the getElementAtEvent method of the chart object

var originalGetElementAtEvent = myChart.getElementAtEvent; myChart.getElementAtEvent = function () { return originalGetElementAtEvent.apply(this, arguments).filter(function (e) { return e._datasetIndex == 0; }); }

where myChart is your chart object.


Fiddle - http://jsfiddle.net/x4shhvbk/

Chart.js v2.0:仅针对一个数据集的工具提示(Chart.js v2.0: Tooltip only for one dataset)

我有这3个数据集的图表:

this.myChart = new Chart(this.ctx, {
  type: 'bar',
  data: {
    labels: labels,
    datasets: [
      { type: 'line', data: data3 },
      { type: 'bar', data: data1, backgroundColor: "#3EAFD5" },
      { type: 'bar', data: data2, backgroundColor: "#D24B47" }
    ]
  }
}
 

如何仅为第一个数据集显示工具提示(类型:'line')?

I have graph whit this 3 datasets:

this.myChart = new Chart(this.ctx, {
  type: 'bar',
  data: {
    labels: labels,
    datasets: [
      { type: 'line', data: data3 },
      { type: 'bar', data: data1, backgroundColor: "#3EAFD5" },
      { type: 'bar', data: data2, backgroundColor: "#D24B47" }
    ]
  }
}
 

How can I do to show tooltip only for first dataset (type: 'line')?

最满意答案

您可以覆盖图表对象的getElementAtEvent方法

var originalGetElementAtEvent = myChart.getElementAtEvent; myChart.getElementAtEvent = function () { return originalGetElementAtEvent.apply(this, arguments).filter(function (e) { return e._datasetIndex == 0; }); }

其中myChart是您的图表对象。


小提琴 - http://jsfiddle.net/x4shhvbk/

You can just override the getElementAtEvent method of the chart object

var originalGetElementAtEvent = myChart.getElementAtEvent; myChart.getElementAtEvent = function () { return originalGetElementAtEvent.apply(this, arguments).filter(function (e) { return e._datasetIndex == 0; }); }

where myChart is your chart object.


Fiddle - http://jsfiddle.net/x4shhvbk/