Pregunta

Deseo hacer un histograma en Matplotlib partir de un archivo de entrada que contiene los datos en bruto (.txt). Estoy frente a cuestiones en referencia al archivo de entrada. Creo que debe ser un programa más bien pequeño. Cualquier Matplotlib gurús, alguna ayuda?

No estoy pidiendo para el código, algunas entradas deben me puso en el camino correcto!

¿Fue útil?

Solución

Yo recomiendo usar ' loadtxt ', que es en realidad en la biblioteca NumPy. Hay funciones relacionadas en Matplotlib (csv2rec) pero Matplotlib es en realidad la estandarización en loadtxt.

Así es como funciona:

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', el objeto de regresar de 'loadtxt', es un N x m array NumPy.

'loadtxt' acepta un archivo o un descriptor de archivo. El ejemplo anterior tiene la mayor parte de la firma del método. 'Skiprows' es un entero que especifica el número de filas contados a partir de la parte superior que desea omitir; que es común a ponerlo en "1" para saltar la fila de encabezado; 'Usecols' comienza en '0' y se muestra una lista de recitar las columnas que desea incluir ( 'Ninguna' es el valor por defecto, y significa 'incluye todos'). Los otros parámetros funcionan como se esperaba.

Para trazar un histograma de estos datos:

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()

Otros consejos

No se puede decir directamente matplotlib para hacer un histograma de un archivo de entrada - se necesita para abrir el archivo usted mismo y obtener los datos de ella. Cómo se haría que depende del formato del archivo - si es sólo un archivo con un número en cada línea, sólo puede ir a través de cada línea, espacios strip() y saltos de línea, y float() uso para convertirlo en un número <. / p>

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top