Question

Je veux faire un Histogramme dans Matplotlib à partir d'un fichier d'entrée contenant les données brutes (txt). Je suis confronté à des problèmes en se référant au fichier d'entrée. Je suppose que ce devrait être un assez petit programme. Tous les gourous Matplotlib, toute aide?

Je ne demande pas le code, quelques entrées devraient me mettre sur la bonne voie!

Était-ce utile?

La solution

Je vous conseille d'utiliser ' loadtxt qui est en fait dans la bibliothèque NumPy. Il y a des fonctions liées à Matplotlib (csv2rec) mais Matplotlib normalise réellement sur loadtxt.

Voilà comment cela fonctionne:

from matplotlib import pyplot as PLT

with open('name_of_your_file.csv') as f:
  v = NP.loadtxt(f, delimiter=",", dtype='float', comments="#", skiprows=1, usecols=None)

'v', l'objet renvoyé dans 'loadtxt', est un n x m réseau de NumPy.

« loadtxt » accepte un fichier ou un descripteur de fichier. L'instance a surtout la majeure partie de la signature de la méthode. « Skiprows » est un entier qui spécifie le nombre de lignes à compter de haut que vous voulez sauter; il est courant de le mettre à « 1 » pour sauter la ligne d'en-tête; « » usecols commence à « 0 » et une liste en récitant les colonnes que vous souhaitez inclure ( « None » est la valeur par défaut, et signifie « tous »). Les autres paramètres fonctionnent comme prévu.

Pour tracer un histogramme de ces données:

from matplotlib import pyplot as PLT

v_hist = NP.ravel(v)   # 'flatten' v
fig = PLT.figure()
ax1 = fig.add_subplot(111)

n, bins, patches = ax1.hist(v_hist, bins=50, normed=1, facecolor='green')
PLT.show()

Autres conseils

Vous ne pouvez pas directement dire matplotlib de faire un histogramme à partir d'un fichier d'entrée - vous aurez besoin d'ouvrir le fichier vous-même et obtenir les données de celui-ci. Comment vous feriez ça dépend du format du fichier - si elle est juste un fichier avec un numéro sur chaque ligne, il vous suffit de passer par chaque ligne, espaces de strip() et des sauts de ligne, et utiliser float() pour le convertir en un certain nombre <. / p>

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top