Comment formater les valeurs de l'échelle de temps de l'axe des abscisses dans le graphique.js v2

je suis capable de formater les tooltips quand je survole un point de données sur un graphique en ligne via options.scales.xAxes.time.tooltipFormat, mais je n'arrive pas à le faire pour l'axe des x tique etiquettes. Mon data.labels est un tableau d'objets de moment. Ils affichent sous la forme "MMM DD, YYYY" (e.g. 23 février 2012), mais je veux laisser tomber l'année.

33
demandé sur wetjosh 2016-05-06 02:36:14

3 réponses

il suffit de définir toutes les unités de temps sélectionnées displayFormatMMM DD

options: {
  scales: {
    xAxes: [{
      type: 'time',
      time: {
        displayFormats: {
           'millisecond': 'MMM DD',
           'second': 'MMM DD',
           'minute': 'MMM DD',
           'hour': 'MMM DD',
           'day': 'MMM DD',
           'week': 'MMM DD',
           'month': 'MMM DD',
           'quarter': 'MMM DD',
           'year': 'MMM DD',
        }
        ...

notez que j'ai réglé le format d'affichage de l'unité à MMM DD. Une meilleure façon, si vous avez le contrôle sur l'ensemble de vos données et la taille du graphique, serait la force d'une unité, comme

options: {
  scales: {
    xAxes: [{
      type: 'time',
      time: {
        unit: 'day',
        unitStepSize: 1,
        displayFormats: {
           'day': 'MMM DD'
        }
        ...

Violon - http://jsfiddle.net/prfd1m8q/

57
répondu potatopeelings 2017-10-12 03:22:33

selon le graphique de la page de documentation js section de configuration de tick. vous pouvez formater la valeur de chaque tique en utilisant la fonction callback. par exemple, je voulais changer la localisation des dates affichées pour être toujours Allemand. dans le tiques parties de l'axe des options

ticks: {
    callback: function(value) { 
        return new Date(value).toLocaleDateString('de-DE', {month:'short', year:'numeric'}); 
    },
},
15
répondu Moustafa Shama 2016-07-11 12:00:47

Vous pourriez formater les dates avant de les ajouter à votre tableau. C'est la façon dont je l'ai fait. J'ai utilisé AngularJS!--3-->

//convertir la date en format standard

var dt = new Date(date);

/ / prenez seulement la date et le mois et poussez-les à votre tableau d'étiquettes

$rootScope.charts.mainChart.labels.push(dt.getDate() + "-" + (dt.getMonth() + 1));

utilisez ce tableau dans votre présentation graphique

0
répondu shafeerambatt 2017-12-28 08:19:19