Chart.js – Formattazione dell’asse Y.

Sto usando Chart.js per disegnare un semplice grafico a barre e ho bisogno di formattare il suo asse Y come

123456,05 a 123 456,05 $

Non capisco come usare scaleLabel : ""

Ho visto qualcuno che indicava ” JS Micro-Templating “,
ma non so come usarlo con la nostra opzione scaleLabel .

Qualcuno sa come formattare questo asse Y e magari darmi un esempio?

    Una funzionalità non documentata della libreria ChartJS è che se si passa una funzione anziché una stringa, verrà utilizzata la propria funzione per il rendering della scalaLa scala dell’asse y.

    Quindi, mentre "<%= Number(value).toFixed(2).replace('.',',') + ' $' %>" Funziona, potresti anche fare:

     scaleLabel: function (valuePayload) { return Number(valuePayload.value).toFixed(2).replace('.',',') + '$'; } 

    Se stai facendo qualcosa di remotamente complicato, ti consiglio di farlo.

    Ho avuto lo stesso problema, penso in Chart.js 2.xx l’approccio è leggermente diverso come sotto.

     ticks: { callback: function(label, index, labels) { return label/1000+'k'; } } 

    Più in dettaglio

     var options = { scales: { yAxes: [ { ticks: { callback: function(label, index, labels) { return label/1000+'k'; } }, scaleLabel: { display: true, labelString: '1k = 1000' } } ] } } 
     scaleLabel : "<%= Number(value).toFixed(2).replace('.', ',') + ' $'%>" 

    Come ha detto Nevercom, la scalaLable dovrebbe contenere javascript, quindi per manipolare il valore y basta applicare la formattazione richiesta.

    Nota che il valore è una stringa.

     var options = { scaleLabel : "<%= value + ' + two = ' + (Number(value) + 2) %>" }; 

    esempio jsFiddle

    se si desidera impostare una scala y manuale, è ansible utilizzare scaleOverride

     var options = { scaleLabel : "<%= value + ' + two = ' + (Number(value) + 2) %>", scaleOverride: true, scaleSteps: 10, scaleStepWidth: 10, scaleStartValue: 0 }; 

    esempio jsFiddle

    Qui puoi trovare un buon esempio di come formattare il valore dell’asse Y.

    Inoltre, puoi usare scaleLabel : "<%=value%>" che hai menzionato, Significa fondamentalmente che tutto tra i <%= e %> sarà trattato come codice javascript (cioè puoi usare if statistiche ...)