¿Cómo abro múltiples archivos de texto de diferentes directorios y los represento en un solo gráfico con leyendas?Cómo trazar los datos de múltiples archivos de texto de dos columnas con leyendas en Matplotlib?
Respuesta
asuma que su archivo se parece a esto y se nombra test.txt (espacio delimitado):
1 2
3 4
5 6
7 8
continuación:
#!/usr/bin/python
import numpy as np
import matplotlib.pyplot as plt
with open("test.txt") as f:
data = f.read()
data = data.split('\n')
x = [row.split(' ')[0] for row in data]
y = [row.split(' ')[1] for row in data]
fig = plt.figure()
ax1 = fig.add_subplot(111)
ax1.set_title("Plot title...")
ax1.set_xlabel('your x label..')
ax1.set_ylabel('your y label...')
ax1.plot(x,y, c='r', label='the data')
leg = ax1.legend()
plt.show()
encuentro que navega por el sitio gallery of plots on the matplotlib útil para descifrar leyendas y etiquetas de ejes.
Por qué interpretaría los datos directamente en lugar de usando np.loadtxt? – cge
Nunca he tenido mucha suerte con np.loadtxt (generalmente tengo archivos de entrada desordenados), pero para este simple ejemplo, probablemente funcionaría genial. – tbc
¿Por qué no utilizar el módulo csv con delimitador configurado en espacio? – Dhara
Esto es relativamente simple si utiliza pylab (incluido con matplotlib) en lugar de matplotlib directamente. Comience con una lista de nombres de archivos y leyendas, como [('nombre del archivo 1', 'etiqueta 1'), ('nombre del archivo 2', 'etiqueta 2'), ...]. A continuación, puede usar algo como lo siguiente:
import pylab
datalist = [ (pylab.loadtxt(filename), label) for filename, label in list_of_files ]
for data, label in datalist:
pylab.plot(data[:,0], data[:,1], label=label)
pylab.legend()
pylab.title("Title of Plot")
pylab.xlabel("X Axis Label")
pylab.ylabel("Y Axis Label")
También puede ser que desee añadir algo como fmt = 'o' al comando trama, con el fin de pasar de una línea a puntos. De forma predeterminada, matplotlib con pylab traza la misma figura sin borrarla, por lo que puede ejecutar el comando de trazado varias veces.
Gracias por ayudarme, pero estoy corriendo hacia algunos problemas. ¿Cuál es el propósito de "list_of_files"? Además, cuando escribo pylab.plot (data [:, 0], data [:, 1], label = label) obtengo este objeto [
El list_of_files es para si desea trazar múltiples archivos: simplemente haga algo como list_of_files = [('ruta al archivo 1', 'etiqueta 1'), ('ruta al archivo 2', 'etiqueta 2'), .. .], y el código los trazará a todos en el mismo diagrama con esas etiquetas. En cuanto a la salida que obtienes, esa es la salida habitual; la trama debería aparecer en una ventana separada? Si no, tienes un problema con tu instalación de matplotlib. ¿Estás usando ipython? Si es así, ¿estás usando una notebook ipython o simplemente una ipython estándar? – cge
Gracias y puedo hacerlo ahora. Sin embargo, tengo un problema: el gráfico guardado tiene gráficos antiguos en el nuevo gráfico y la única forma de que tenga un nuevo gráfico es reiniciando el IDLE de Python. ¿Por qué es eso? Quiero tener múltiples gráficos, pero no con el gráfico anterior de la última figura/gráfico. – Hiren
me siento de la manera más simple sería
from matplotlib import pyplot;
from pylab import genfromtxt;
mat0 = genfromtxt("data0.txt");
mat1 = genfromtxt("data1.txt");
pyplot.plot(mat0[:,0], mat0[:,1], label = "data0");
pyplot.plot(mat1[:,0], mat1[:,1], label = "data1");
pyplot.legend();
pyplot.show();
- etiqueta es la cadena que se muestra en la leyenda
- se puede trazar como muchas series de puntos de datos como sea posible antes del espectáculo() para trazar todos ellos en el mismo gráfico Esta es la manera simple de trazar gráficos simples. Para otras opciones en genfromtxt, vaya a este url.
- 1. Cómo trazar archivos con numpy?
- 2. ¿Trazar enormes archivos de datos en R?
- 3. dos leyendas basadas en diferentes conjuntos de datos con ggplot2
- 4. Leyendas matplotlib no trabajar
- 5. ¿Cómo combino dos marcos de datos basados en dos columnas?
- 6. Cómo trazar vectores matemáticos 2D con matplotlib?
- 7. Trazar comportamientos propios con matplotlib
- 8. Cómo trazar una línea de color de degradado en matplotlib?
- 9. Trazar los ejes logarítmicos con matplotlib en python
- 10. Combinar imagen y trazar con Python Matplotlib
- 11. Cómo trazar cdf en matplotlib en Python?
- 12. cómo anotar mapa de calor con texto en matplotlib?
- 13. R: Trazar gráficos de cajas múltiples usando columnas del marco de datos
- 14. Trazar múltiples conjuntos de datos con flot usando ajax - Los datos no se muestran correctamente
- 15. Cómo trazar una colección de parches 3D en matplotlib?
- 16. Combinar dos archivos de texto con powershell
- 17. Procesamiento de texto con dos archivos
- 18. Pegar columnas de dos marcos de datos
- 19. En matplotlib.pyplot, ¿cómo trazar dos conjuntos de datos utilizando gráficos de barras intercaladas?
- 20. ¿Cómo deshacerse de múltiples columnas en una base de datos?
- 21. Múltiples leyendas para la misma estética
- 22. ¿Cómo grafico múltiples ejes X o Y en matplotlib?
- 23. ¿Cómo puedo trazar los valores NaN como un color especial con imshow en matplotlib?
- 24. Giro de datos usando dos columnas
- 25. matplotlib: 2 leyendas diferentes en el mismo gráfico
- 26. cómo trazar todas las columnas de un marco de datos en R
- 27. android: tablerow mezclado con columnas y texto de líneas múltiples
- 28. ¿Es posible trazar una imagen en un mapa con matplotlib?
- 29. LaTeX: Múltiples autores en un artículo de dos columnas
- 30. Cómo trazar dos líneas en ggplot2
'plotfile' funciona es una manera conveniente para los archivos individuales: http://stackoverflow.com/questions/12311767/how-to-plot-files-with-numpy –