web-dev-qa-db-fra.com

Remplacement/suppression des notations métriques telles que l’abréviation des milliers "k"

Le graphique Mon secteurpline a des valeurs allant jusqu’à environ 6 000 sur l’axe des Y. Highcharts modifie automatiquement la partie "000" de mon axe des Y pour un "k".

Comme je suis français et que le site est censé être dans la même langue, cette abréviation "k" n’aura aucun sens dans mon cas et j’aimerais avoir un affichage "000" occasionnel à la place de celui-ci.

Est-ce possible? Comment?

18
Cécile Fecherolle

Vous pouvez le faire en remplaçant explicitement lelang.numericSymbols*avec null dans la defaultOptions comme suit

Highcharts.setOptions({
    lang: {
        numericSymbols: null //otherwise by default ['k', 'M', 'G', 'T', 'P', 'E']
    }
});

La documentation se lit comme suit

numericSymbols: Array<String>

Préfixes métriques utilisés pour raccourcir les nombres élevés dans les étiquettes des axes. Le remplacement de l'une des positions par null entraîne l'écriture du nombre entier. Définir numbericSymbols sur null désactive le raccourcissement. La valeur par défaut est ['k', 'M', 'G', 'T', 'P', 'E'].

** officiellement disponible à partir de la v1.2.0 (2012-08-24)
Cela ne fonctionnera pas avant la v1.2.0 car les suffixes étaient alors codés en dur. *

Solution alternative

(Devrait fonctionner sur toutes les versions prenant en charge le formateur)

UtilisezyAxis.labels.formatteret retournez la valeur telle quelle

yAxis: {
    labels: {
        formatter: function () {
            return this.value;
        }
    }
}

Désactivation de la notation métrique sur les valeurs d'axe | Highchart & Highstock (v1.2 +) @ jsFiddle
Désactivation de la notation métrique sur les valeurs d'axe | Highchart & Highstock (anciennes versions) @ jsFiddle

31
Jugal Thakkar

Basé sur la réponse de @ Jugal-Thakkar, j'ai implémenté:

numericSymbols: [' × 10³', ' × 10⁶', ' × 10⁹', ' × 10¹²', ' × 10¹⁵', ' × 10¹⁸'],

Les indices supérieurs 0 et 4-9 sont uniquement des caractères UTF-8. Vous devez spécifier une police qui les prend en charge. Sinon, vous rencontrerez des problèmes de substitution de police, comme indiqué dans Pourquoi l'affichage des caractères Unicode pour les chiffres en exposant n'est pas à la même hauteur? .

J'utilise:

font-family: Lucida Sans Unicode, Arial Unicode MS, Cambria, Calibri, Consolas;

Aussi, je préférerais avoir 1,8 × 10¹⁴ plutôt que 180 × 10¹², mais mieux que 180000000000000, ce qui est difficile à lire.

0
R. Schreurs