2010-04-01 7 views
3

Fondamentalement, lors de la génération de parcelles avec matplotlib, L'échelle sur l'axe des y va dans les millions. Comment puis-je activer le regroupement des chiffres (c'est-à-dire pour que 1000000 s'affiche comme 1 000 000) ou activer le séparateur décimal?Groupement de chiffres Matplotlib (séparateur décimal)

+0

Vous pouvez le faire comme ceci: http://tiku.io/questions/1009459/comment-format-axe-nombre-format-aux-milliers-avec-une-virgule-dans-matplotlib –

Répondre

3

Je ne pense pas qu'il existe une fonction intégrée pour faire cela. (C'est ce que j'ai pensé après avoir lu votre Q; je viens de vérifier et je ne pouvais pas trouver un dans la documentation).

Dans tous les cas, il est facile de rouler les vôtres. (Ci-dessous un exemple complet - c.-à-d., Il générera un graphique mpl avec un axe ayant des étiquettes de ticks - même si cinq lignes de code sont tout ce dont vous avez besoin pour créer des étiquettes personnalisées) pour la fonction utilisée pour créer les étiquettes personnalisées, et deux lignes pour créer les nouvelles étiquettes et les placer sur l'axe spécifié.)

# first code a function to generate the axis labels you want 
# ie, turn numbers greater than 1000 into commified strings (12549 => 12,549) 

import locale 
locale.setlocale(locale.LC_ALL, 'en_US') 
fnx = lambda x : locale.format("%d", x, grouping=True) 

from matplotlib import pyplot as PLT 
import numpy as NP 

data = NP.random.randint(15000, 85000, 50).reshape(25, 2) 
x, y = data[:,0], data[:,1] 

fig = PLT.figure() 
ax1 = fig.add_subplot(111) 
ax1.plot(x, y, "ro") 
default_xtick = range(20000, 100000, 10000) 

# these two lines are the crux: 
# create the custom tick labels 
new_xtick = map(fnx, default_xtick) 
# set those labels on the axis 
ax1.set_xticklabels(new_xtick) 

PLT.show() 
Questions connexes