Español English

Thursday 24 January 2013

Gráficas en Python

Otra entrada sobre Python, ésta vez sobre como hacer gráficas muy chulas y de forma sencilla.

Necesitamos tres paquetes para poder hacer las figuras con los ejemplos que voy a describir. Como siempre los pasos a seguir son en Arch Linux aunque deben ser fáciles de reproducir en otros sistemas operativos.



[maitesin@Malesero ~]$ yaourt -S python2-numpy python2-matplotlib
[sudo] password for maitesin:
resolviendo dependencias...
verificando conflictos...

Objetivos (9): python2-dateutil-2.1-6  python2-dbus-1.1.1-2  python2-pyparsing-1.5.7-1  python2-pyqt-4.9.6-1  python2-pytz-2012j-1
               python2-sip-4.14.2-1  python2-six-1.2.0-2  python2-matplotlib-1.2.0-8  python2-numpy-1.7.0-1

Tamaño de descarga:     30,17 MiB
Tamaño instalado:       95,95 MiB

¿Continuar con la instalación? [S/n]



En mi caso yo uso Python 2 si queréis utilizar éstos módulos en Python 3 sólo tenéis que eliminar el 2 del nombre del paquete. Una vez instalado se usa como el en siguiente ejemplo:


#!/usr/bin/env python
#Graficas para los grafos con ciclos

from numpy import *
from pylab import *
from matplotlib import rc, rcParams

#rc('text',usetex=True) #Para habilitar la escritura en Latex en los textos
rc('font',**{'family':'serif','serif':['Computer Modern']})

# Read in data from an ASCII data table
binomial = genfromtxt('../prim/ciclos/final_binomial.txt')
lazy = genfromtxt('../prim/ciclos/final_lazy.txt')
fibonacci = genfromtxt('../prim/ciclos/final_fibonacci.txt')

#Plot results
plot(binomial[:,0], binomial[:,1], 'o-', label='Binomial')
hold(True)
plot(lazy[:,0], lazy[:,1], 'o-', label='Lazy')
plot(fibonacci[:,0], fibonacci[:,1], 'o-', label='Fibonacci')

# Options
xlabel(r'Tamaño grafo')
ylabel(r'Tiempo(ms)')
title(r'Grafos Ciclos')
legend(loc='best')

# Turn on a grid
grid(True)

# Save the figure in a separate file
savefig('ciclos.eps') # soporta diferentes formatos jpg, png, eps...

# Draw the plot to the screen
show()



Creo que no hace falta describir que es cada parte del o como funciona el código. El resultado de la ejecución la podemos ver en la siguiente imagen.

Ya me contáis como os ha ido ;)

No comments:

Post a Comment