Est-ce que quelqu'un sait comment on peut définir l'étiquette ou le titre d'un axe dans Flot?
J'ai lu l'API mais il ne semble pas avoir cette fonctionnalité ...
Merci :)
Il n'y a pas intégré à flot.
Votre meilleur pari est de le faire vous-même via des div positionnés, mais si vous êtes aventureux, vous pouvez regarder le issue (ou le issue ) original et voir comment d’autres personnes l’ont traitée.
Plus précisément, deux personnes ont récemment apporté des modifications à l'étiquette liées à l'étiquette:
https://github.com/RuiPereira/flot/raw/axislabels/jquery.flot.axislabels.js
j'utilise cette solution de contournement:
yaxis: {
tickFormatter: function(val, axis) { return val < axis.max ? val.toFixed(2) : "CZK/l";}
}
Très simple, la valeur maximale sur l'axe des ordonnées est remplacée par une chaîne personnalisée. Je n'ai pas testé l'axe X, mais je ne vois pas pourquoi cela ne fonctionnerait pas.
Auto-plug éhonté: j'ai corrigé et grandement étendu le plugin flot-axislabels de xuanluo: http://github.com/markrcote/flot-axislabels/ Pour autant que je sache, c'est la meilleure solution pour les étiquettes d'axe au moment.
Une suggestion que j’ai vue qui fonctionne assez bien est de placer le graphique au milieu d’un tableau 3x3. Ensuite, les étiquettes peuvent être placées dans les autres cellules.
<table style="text-align:center">
<tr>
<td></td>
<td>Plot Title Goes Here</td>
<td> </td>
</tr>
<tr>
<td>Y Axis Label</td>
<td>
<div id="graph here" style="width:600px;height:300px"></div>
</td>
<td></td>
</tr>
<tr>
<td></td>
<td>X Axis Label Goes Here</td>
<td></td>
</tr>
</table>
Exemple de graphe à 2 dimensions (axes x et y) résolu en css pur.
Axe Y:
#placeholder:after {
content: 'Speed';
position: absolute;
top: 50%;
left: -50px;
font-weight: 600;
/* Safari */
-webkit-transform: rotate(-90deg);
/* Firefox */
-moz-transform: rotate(-90deg);
/* IE */
-ms-transform: rotate(-90deg);
/* Opera */
-o-transform: rotate(-90deg);
/* Internet Explorer */
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
}
Axe X:
#placeholder:before {
content: 'Time';
position: absolute;
bottom: -30px;
left: 50%;
font-weight: 600;
}
jqPlot a un support pour cela, si vous pouvez utiliser une alternative
$("<div class='axisLabel yaxisLabel'></div>")
.text("Pressure")
.appendTo($("#yl_1"));
Cela fonctionnera aussi.
J'utilise l'idée de szpapas.
J'ai ajouté plus de code jquery en dessous pour écraser l'axe des abscisses comme ceci.
$('div.flot-x-axis div.flot-tick-label.tickLabel:nth-child(1)').html("Berhad")
$('div.flot-x-axis div.flot-tick-label.tickLabel:nth-child(2)').html("")
$('div.flot-x-axis div.flot-tick-label.tickLabel:nth-child(3)').html("Sdn Bhd")
$('div.flot-x-axis div.flot-tick-label.tickLabel:nth-child(4)').html("")
$('div.flot-x-axis div.flot-tick-label.tickLabel:nth-child(5)').html("Enterprise")
$('div.flot-x-axis div.flot-tick-label.tickLabel:nth-child(6)').html("")
$('div.flot-x-axis div.flot-tick-label.tickLabel:nth-child(7)').html("Koperasi")