J'utilise Chartjs pour montrer des diagrammes et je dois définir le titre de l'axe des y, mais il n'y a aucune information à ce sujet dans la documentation.
J'ai besoin que l’axe y soit défini comme sur la photo ou en haut de l’axe y afin que quelqu'un puisse maintenant définir ce paramètre.
J'ai regardé sur le site officiel mais il n'y avait aucune information à ce sujet
Pour Chart.js 2.x, reportez-vous à la réponse de andyhasit - https://stackoverflow.com/a/36954319/360067
Pour Chart.js 1.x, vous pouvez modifier les options et étendre le type de graphique pour le faire, comme suit.
Chart.types.Line.extend({
name: "LineAlt",
draw: function () {
Chart.types.Line.prototype.draw.apply(this, arguments);
var ctx = this.chart.ctx;
ctx.save();
// text alignment and color
ctx.textAlign = "center";
ctx.textBaseline = "bottom";
ctx.fillStyle = this.options.scaleFontColor;
// position
var x = this.scale.xScalePaddingLeft * 0.4;
var y = this.chart.height / 2;
// change Origin
ctx.translate(x, y);
// rotate text
ctx.rotate(-90 * Math.PI / 180);
ctx.fillText(this.datasets[0].label, 0, 0);
ctx.restore();
}
});
l'appeler comme ça
var ctx = document.getElementById("myChart").getContext("2d");
var myLineChart = new Chart(ctx).LineAlt(data, {
// make enough space on the right side of the graph
scaleLabel: " <%=value%>"
});
Notez l’espace précédant la valeur de l’étiquette, cela nous laisse l’espace nécessaire pour écrire l’étiquette de l’axe des y sans trop jouer avec les éléments internes de Chart.js
Fiddle - http://jsfiddle.net/wyox23ga/
Dans Chart.js version 2.0, cela est possible:
options = {
scales: {
yAxes: [{
scaleLabel: {
display: true,
labelString: 'probability'
}
}]
}
}
Voir documentation d'étiquetage des axes pour plus de détails.
Pour les axes x et y:
options : {
scales: {
yAxes: [{
scaleLabel: {
display: true,
labelString: 'probability'
}
}],
xAxes: [{
scaleLabel: {
display: true,
labelString: 'hola'
}
}],
}
}
chart.js supporte cela par défaut, vérifiez le lien. chartjs
vous pouvez définir l'étiquette dans l'attribut options.
objet options ressemble à ceci.
options = {
scales: {
yAxes: [
{
id: 'y-axis-1',
display: true,
position: 'left',
ticks: {
callback: function(value, index, values) {
return value + "%";
}
},
scaleLabel:{
display: true,
labelString: 'Average Personal Income',
fontColor: "#546372"
}
}
]
}
};
Pour moi cela fonctionne comme ceci:
options : {
scales: {
yAxes: [{
scaleLabel: {
display: true,
labelString: 'probability'
}
}]
}
}
Pensez à utiliser le style de transformation: rotate (-90deg) sur un élément. Voir http://www.w3schools.com/cssref/css3_pr_transform.asp
Exemple, dans votre css
.verticaltext_content {
position: relative;
transform: rotate(-90deg);
right:90px; //These three positions need adjusting
bottom:150px; //based on your actual chart size
width:200px;
}
Ajoutez un facteur de fudge d'espace à l'échelle de l'axe des ordonnées afin que le texte puisse être rendu dans votre javascript.
scaleLabel: " <%=value%>"
Puis dans votre html après votre toile graphique mettez quelque chose comme ...
<div class="text-center verticaltext_content">Y Axis Label</div>
Ce n’est pas la solution la plus élégante, mais a bien fonctionné lorsque j’avais quelques couches entre le code HTML et le code de la carte (en utilisant un diagramme angulaire et ne voulant pas changer le code source).