Histogramme dans Matplotlib avec le fichier d'entrée
Je souhaite faire un Histogramme dans Matplotlib à partir d'un fichier d'entrée contenant les données brutes (.txt). Je suis face à des questions en se référant au fichier d'entrée. Je suppose que ce doit être plutôt un petit programme. Tout Matplotlib gourous, toute aide ?
Je ne demande pas le code, certains intrants devrait me mettre sur le droit chemin !
OriginalL'auteur Arkapravo | 2010-04-07
Vous devez vous connecter pour publier un commentaire.
je vous conseille d'utiliser 'loadtxt qui, en fait, dans la bibliothèque NumPy. Il y a des fonctions de Matplotlib (csv2rec) mais Matplotlib est en fait la standardisation sur loadtxt.
Voici comment cela fonctionne:
'v', l'objet retourné à partir de 'loadtxt", est un n x m tableau NumPy.
'loadtxt' accepte un fichier ou un descripteur de fichier. L'exemple ci-dessus a plus de la signature de la méthode.
'skiprows' est un entier qui spécifie le nombre de lignes en comptant à partir de la partie supérieure que vous souhaitez ignorer; il est commun de le mettre à "1" pour passer à la ligne d'en-tête; 'usecols' commence par '0' et c'est une liste de réciter les colonnes que vous souhaitez inclure ("Aucun" est la valeur par défaut, et signifie "comprennent tous"). Les autres paramètres de fonctionner comme prévu.
Pour tracer un histogramme à partir de ces données:
vous devriez toujours utiliser
genfromtxt
au lieu de loadtxt, surtout lorsqu'il s'agit de gros fichiers, comme il a le même comportement par défaut, mais peut être 20 fois plus rapide.Assurez-vous aussi de le mettre dans une déclaration à l'import numpy. Pour le code ci-dessus fonctionne, il est indispensable d'avoir
import numpy as NP
pour que tout fonctionne. Super réponse!OriginalL'auteur doug
Vous ne pouvez pas dire matplotlib pour faire un histogramme à partir d'un fichier d'entrée), vous devez ouvrir le fichier vous-même et obtenir les données. Comment vous ferais ça dépend du format du fichier - si c'est juste un fichier avec un numéro sur chaque ligne, vous pouvez simplement aller à travers chaque ligne,
strip()
les espaces et les retours à la ligne, et l'utilisationfloat()
pour convertir en nombre.Vrai, et je n'avais pas réalisé à propos de doug est solution de l'utiliser 🙂
OriginalL'auteur Daniel G