Używam chart.js (V2), aby spróbować zbudować wykres słupkowy, który ma więcej informacji dostępnych dla użytkownika bez po najechaniu kursorem myszy lub kliknięciu w dowolnym miejscu. Podałem dwa przykłady, jak mam nadzieję edytować mój wykres.ChartJS Nowe linie ' n' na osi X Etykiety lub wyświetlanie większej ilości informacji Wokół wykresu lub etykiety narzędzi z ChartJS V2
Two edited versions of what I hope to achieve
Jak widać, mam nadzieję na miejsce (gdzieś), kilka dodatkowych informacji poza etykietach. Miałem nadzieję, że przez dodanie „\ n” do etykiet może udało mi się dostać to, czego szukałem podobna do opcji A.
Niektóre zmieniony kod jest cios:
var barChartData = {
labels: playerNames,
datasets: [{
label: 'Actual Score/Hour',
backgroundColor: "rgba(0, 128, 0,0.5)",
data: playerScores
}, {
label: 'Expected Score/Hour',
backgroundColor: "rgba(255,0,0,0.5)",
data: playerExpected
}]
};
function open_win(linktosite) {
window.open(linktosite)
}
canvas.onclick = function(evt){
var activePoints = myBar.getElementsAtEvent(evt);
console.log(activePoints);
linktosite = 'https://www.mytestsite.com/' + activePoints[1]['_model']['label'];
open_win(linktosite);
};
window.onload = function() {
var ctx = document.getElementById("canvas").getContext("2d");
window.myBar = new Chart(ctx, {
type: 'bar',
data: barChartData,
options: {
title:{
display:true,
text:"Player Expected and Actual Score per Hour"
},
tooltips: {
mode: 'label'
},
responsive: true,
scales: {
xAxes: [{
stacked: false,
}],
yAxes: [{
stacked: false
}]
},
animation: {
onComplete: function() {
var ctx = this.chart.ctx;
ctx.textAlign = "center";
Chart.helpers.each(this.data.datasets.forEach(function (dataset) {
Chart.helpers.each(dataset.metaData.forEach(function (bar, index) {
// console.log("printing bar" + bar);
ctx.fillText(dataset.data[index], bar._model.x, bar._model.y - 10);
}),this)
}),this);
}
}
}
});
// Chart.helpers.each(myBar.getDatasetMeta(0).data, function(rectangle, index) {
// rectangle.draw = function() {
// myBar.chart.ctx.setLineDash([5, 5]);
// Chart.elements.Rectangle.prototype.draw.apply(this, arguments);
// }
// }, null);
};
W ten punkt Byłbym zadowolony z posiadania extradata w dowolnym miejscu na pasku. Każda pomoc będzie doceniona. Dzięki ~
Świetnie dziękuję! – Jibeee