【发布时间】:2017-06-16 09:36:08
【问题描述】:
我正在尝试在堆积条形图上实现点击事件。
数据如下:
var chartData = {
type: 'horizontalBar',
data: {
labels: ['A0224', 'A3681', 'A3984', 'A4101', 'A4150', 'B0682', 'Others'],
datasets: [
{
label: "P1",
backgroundColor: '#cc3399',
data: [6, 7, 6, 8, 6, 10, 3]
},
{
label: "P2",
backgroundColor: '#0099ff',
data: [8, 9, 5, 8, 6, 10, 3]
},
{
label: "P3",
backgroundColor: '#0022ff',
data: [6, 7, 6, 8, 6, 10, 3]
}
]
},
options: {
legend: { display: false },
scales: {
yAxes: [{
stacked: true
}],
xAxes: [{
stacked: true
}]
},
}
}
点击事件和图表创建方法如下:
var myChart = new
Chart(document.getElementById("createCurrYearHccGapChart"),
chartData);
var canvas = document.getElementById('createCurrYearHccGapChart');
canvas.onclick = function (evt) {
var activePoints = myChart.getElementsAtEvent(evt);
var cdata = activePoints[0]['_chart'].config.data;
var idx = activePoints[0]['_index'];
var label = cdata.datasets[idx].label;
var value = cdata.datasets[0].data[idx];
};
图表如下所示:
以下是我在单击单个栏时获得的值:
栏 1 - 标签 = P1,值 = 6
栏 2 - 标签 = P2,值 = 7
栏 3 - 标签 = P3,值 = 6 等等...
问题:
因此,无论我点击第一个柱,标签都是 P1,因为我将整个柱的索引值设为 0,柱 2 的索引值为 1,依此类推。
问题:
有什么方法可以识别x坐标值吗?这样我就可以确定点击来自哪个堆栈。
【问题讨论】:
标签: javascript jquery charts chart.js stacked-chart