Está en la página 1de 8

23/7/2015

Python 3 para impacientes: Grficos en IPython

Python3paraimpacientes
"Simpleesmejorquecomplejo"(TimPeters)
TutorialdePython

TutorialdeIPython

TutorialdeEasyGUI

jueves,21deagostode2014

Buscar

Buscar

GrficosenIPython
Pythonparaimpacientes

ndicedelTutorialdePython3
ndicedelTutorialdeIPython
ndicedelTutorialdeEasyGUI

Captulos+populares

GrficosenIPython
Unosdelosmotivosqueinspiraronel
desarrollodeIPythonfuecontarconuna
herramientaqueunieralaposibilidadde
realizarclcu...
EasyGUI,lainterfazgrficafcil
IntroduccinEasyGUIesunmdulode
interfazgrficaparaPython2.x/3.xcreado
porStephenRaymondFergbasadoen
Tkinter,unbindin...

UnosdelosmotivosqueinspiraroneldesarrollodeIPythonfuecontarconunaherramientaque
uniera la posibilidad de realizar clculos avanzados con la obtencin de representaciones
grficasdelospropiosdatosquefacilitaransuanlisis.
IPython utiliza Pylab para realizar los grficos. Pylab es una API para Python de la biblioteca
grfica Matplotlib (matplotlib.pyplot) que utiliza Numpy, un mdulo matemtico que aade
funcionesparaoperarconvectoresomatrices.
ParatrabajarconrepresentacionesgrficasdedatostenemosvariasposibilidadesconIPython:
Iniciarlaconsolainteractivayelinterfazgrficoorientadoaobjetos:
$ipython3pylab
IniciarlaconsolainteractivaQTyelinterfazgrficoorientoaobjetos:
$ipython3qtconsolepylab
IniciarNotebookyelinterfazgrficoorientadoaobjetos:
$ipython3notebookpylab

IniciarNotebookparainsertarlosgrficosenuncuadernodetrabajo:
$ipython3notebookpylabinline

A continuacin, se muestran una serie de ejemplos que pretenden ilustrar la forma de trabajar
congrficosenIPython.
Enprimerlugariniciaremoslaconsolacon:
$ipython3pylab

Operacionesconfechasyhoras.
Calendarios
Losmdulosdatetimeycalendaramplan
lasposibilidadesdelmdulotimeque
proveefuncionesparamanipular
expresionesdetiemp...
ExpresionesRegulares.Mdulore
Elmdulorecuentaconfuncionespara
trabajarconexpresionesregularesy
cadenas.Lafuncinmatch()Lafuncin
matchcomprueba...
Cadenas,listas,tuplas,diccionariosy
conjuntos(set)
Lascadenas,listasytuplassondistintos
tiposdesecuencias.Unasecuenciaesun
tipodeobjetoquealmacenadatosyque
permiteelacce...
Fundamentosparaprocesarimgenescon
Pillow(I)
Pillowesunavariante(ofork)delapopular
libreraPIL(PythonImageLibrary)que
permiteprocesarconfacilidadimgenes
conPyt...
MostrarcajasdemensajesconEasyGUI
Continuamosconociendomsdetallesdel
mduloEasyGUIdespusdelabreve
introduccindelcaptuloanterior.A
continuacin,re...

Archivo

Archivo
Sitios

Bpython

El argumento pylab hace que al iniciar la sesin se carguen los mdulos matplotlib.pylab y
NumPy con los alias mpl y np, respetivamente. Para obtener ayuda de estos mdulos en
IPython:

Ipython
IronPython
Matplotlib
Numpy

:numpy?numpy??

http://python-para-impacientes.blogspot.mx/2014/08/graficos-en-ipython.html

Pillow

1/8

23/7/2015

Python 3 para impacientes: Grficos en IPython


:pylab?pylab??

Dibujarungrficodelneas
Elsiguienteejemplocreaungrficoapartirdeunalistadevalores.Eneleje"x"serepresentan
8elementosnumeradosdel0al7yeneleje"y"losvaloresdecadaunodeellossiguiendoel
ordendelalista.

PortablePython
Pypi
Python.org
SciPy.org
Spyder

Twitter

:lista1=[11,2,3,15,8,13,21,34]#Declaralista1con8valores
:plt.plot(lista1)#Dibujaelgrfico
:plt.title("Ttulo")#Estableceelttulodelgrfico
:plt.xlabel("abscisa")#Estableceelttulodelejex
:plt.ylabel("ordenada")#Estableceelttulodelejey
1

Este tipo de grficos pueden crearse tambin con el intrprete interactivo de Python si se
importanlosmdulosadecuados.Haydosmodosdehacerlo:
>>>importmatplotlib.pyplotasplt
>>>importnumpyasnp
>>>lista1=[11,2,3,15,8,13,21,34]
>>>plt.plot(lista1)
>>>plt.show()
obien,
>>>frompylabimport*
>>>lista1=[11,2,3,15,8,13,21,34]
>>>plt.plot(lista1)
>>>plt.show()
EnelejemploanterioraunqueseimportaelmduloNumpynoesnecesarioporquenoseutiliza.
Se incluye la lnea porque dicho mdulo suele usarse con frecuencia cuando se trabaja con
grficos.

Activarydesactivarelmodointeractivodedibujo
Acontinuacin,seutilizanlosmtodosion()yioff()queactivanodesactivanelmodointeractivo
dedibujoparaaadir,ono,nuevosdatossobreelgrficoactual.
:lista1=[11,2,3,15,8,13,21,34]#Declaralista1con8valores
:plt.plot(lista1)#Dibujaelgrfico
:plt.xlabel("abscisa")#InsertaelttulodelejeX
:plt.ylabel("ordenada")#InsertaelttulodelejeY
:plt.ioff()#Desactivamodointeractivodedibujo
:lista2=[2,3,4,2,3,6,4,10]#Declaralista2con8valores
:plt.plot(lista2)#Nodibujadatosdelista2
:plt.ion()#Activamodointeractivodedibujo
:plt.plot(lista2)#Dibujadatosdelista2sinborrardatosdelista1

http://python-para-impacientes.blogspot.mx/2014/08/graficos-en-ipython.html

2/8

23/7/2015

Python 3 para impacientes: Grficos en IPython

Paraconocerenunmomentodadoqumodoestactivo:
:plt.isinteractive()#LafuncindevolverTrueoFalse
Losmtodosshow()odraw()fuerzanquelainformacinsemuestreenelgrfico(datos,ttulos,
etiquetas,etc.)aunqueelmodointeractivoestdesactivado:
:plt.ioff()#Desactivamodointeractivo
:lista3=[9,15,9,15,9,15,9,15]#Declaralista3con8valores
:plt.plot(lista3)#Nodibujadatosdelista3
:plt.show()#Fuerzadibujodedatosdelista3
:plt.title("Grfica")#Establecenuevottuloperonomuestraengrfico
:plt.show()#Actualizagrficoconnuevottulo
:plt.grid(True)#Activacuadrculadelgrficoperonosemuestra
:plt.show()#Muestracuadrculadelgrfico
:plt.ion()#Activamodointeractivodedibujo

Aadirleyendasaungrfico
Para aadir leyendas al grfico anterior asignar al parmetro "label=" de plot() el literal de la
leyendaamostrar.Ydespus,ejecutarelmtodolegend().
:plt.plot(lista1,label="Enero")
:plt.plot(lista2,label="Febrero")
:plt.plot(lista3,label="Marzo")
:plt.legend()

Posicindeleyendas(loc=):
upper,arriba
lower,abajo
center,centro
left,izquierday
right,derecha
Paracolocarlaleyendaenlapartesuperiordelgrficoyalaizquierda:
:plt.legend(loc="upperleft")

http://python-para-impacientes.blogspot.mx/2014/08/graficos-en-ipython.html

3/8

23/7/2015

Python 3 para impacientes: Grficos en IPython

Cambiarestilosdelnea,marcadoresycoloresdeungrfico
Para dar claridad a los grficos pueden establecerse distintos estilos de lneas, marcadores y
colores:
EstilosdeLneas(linestyle=):
,LneaSlida
,Lneadiscontinua
:,Lneapunteada
.,Lneapunteadadiscontinua.y
None,Ningunalnea
Marcadores(marker=):
+,Cruz
.,Punto
o,Crculo
*,Estrellas
p,Pentgonos
s,cuadrados
x,Tachados
D,Diamantes
h,Hexgonosy
^,Tringulos
Colores(color=):
b,blue
g,green
r,red
c,cyan
m,magenta
y,yellow
k,black
w,white
Ejemplo:
:plt.plot(lista1,marker='x',linestyle=':',color='b',label="Enero")
:plt.plot(lista2,marker='*',linestyle='',color='g',label="Febrero")
:plt.plot(lista3,marker='o',linestyle='',color='r',label="Marzo")
:plt.legend(loc="upperleft")

http://python-para-impacientes.blogspot.mx/2014/08/graficos-en-ipython.html

4/8

23/7/2015

Python 3 para impacientes: Grficos en IPython

Tambin, es posible cambiar las fuentes de los textos, los grosores de las lneas y otras
propiedadesquemodificanelaspectodeungrfico.

Aadirrtulosalosejes
En el siguiente ejemplo se crea un grfico nuevo con el mtodo figure() donde se representa
slounalistadevaloresysedefinenlosrtulosdelosejes.
:plt.figure()#Comenzamosunnuevogrfico(figura)
:lista1=[11,2,3,15,8,13,21,34]
:plt.title("Ttulo")
:plt.xlabel("abscisa")
:plt.ylabel("ordenada")
:indice=np.arange(8)#Declaraunarray
:plt.xticks(indice,("A","B","C","D","E","F","G","H"))
:plt.yticks(np.arange(0,51,10))
:plt.plot(lista1)
Se han generado dos arrays con la funcion arange() del mdulo Numpy con los siguientes
valores:
Elarrayqueseobtieneconnp.arange(8)contienelossiguientevalores:
array([0,1,2,3,4,5,6,7])
Elarrayqueseobtieneconnp.arange(0,51,10)contienelossiguientevalores:
array([0,10,20,30,40,50])
Los arrays se utilizan para definir los rtulos que se mostrarn en ambos ejes. En el eje "x" el
valordelndiceessustituidoporuncarcteralfabticoyeneleje"y",directamente,semuestran
enlaescalalosvaloresdelpropioarray.

Trabajarconvariosgrficos
Activargrficoporsunmero:
Si estamos trabajando con varios grficos a la vez para activar uno concreto indicaremos el

http://python-para-impacientes.blogspot.mx/2014/08/graficos-en-ipython.html

5/8

23/7/2015

Python 3 para impacientes: Grficos en IPython


nmero que aparece en su barra de ttulo. Cualquier accin que se realice a continuacin se
harsobredichogrfico:plt.figure(Numero)
Ejemplo:
:plt.figure()#Aadeunnuevogrficoyloactiva
:x=linspace(2,8,4)#devuelve>array([2.,4.,6.,8.])
:y=x**2
:plt.plot(x,y,"r")
:plt.xlabel("x")
:plt.ylabel("y")
:plt.title("Grafico")
:plt.figure(1)#Activaelgrfico1
:plt.title("Ttulo")#Cambiaelttulodelgrfico1

Activargrficoporsunombre:
Cuando se trabaja con varios grficos, otra posibilidad de activar un grfico determinado es
referirseasunombre:
:plt.figure('Regiones')
:plt.figure('Dispersin')
:elementosx=np.random.rand(10)#Generaarray10elementosejex
:elementosy=np.random.rand(10)#Generaarray10elementosejey
:plt.scatter(elementosx,elementosy)
:plt.figure('Regiones')
:plt.plot(elementosx,elementosy)
Generardosgrficosenlamismaventana:
Dividirlaventanaen1filax2columnasydibujarprimergrfico
:plt.subplot(1,2,1)
:plt.plot((1,2,3,4,5))
Dividirlaventanaen1filax2columnasydibujarsegundogrfico
:plt.subplot(1,2,2)
:plt.plot((5,4,3,2,1))

Continuar"dibujando"oreiniciarelgrfico
Conelmtodohold()seconmutandosestados:unoparacontinuar"dibujando"(True)sobreun
grficoyotroparareiniciarelgrfico(False).
:plt.hold()#ConmutardeTrueaFalseydeFalseaTrue
Paracomprobarelestadoenunmomentodado:
:plt.ishold()#devuelve>True/False

Borrarungrfico.Borrarlosejes.Cerrarungrfico
Elmtodocla()borratodalainformacinrelacionadaconlosejesdeungrficoyelmtodoclf()
borratodoelgrfico.Porotrolado,close()terminaelgrficocerrandosuventana.

http://python-para-impacientes.blogspot.mx/2014/08/graficos-en-ipython.html

6/8

23/7/2015

Python 3 para impacientes: Grficos en IPython


:plt.cla()#Borrarinformacindelosejes
:plt.clf()#Borrarungrficocompleto
:plt.close()#Terminarungrfico

Guardarungrficocomo.png/.pdf
Paraguardarlaimagendeungrficoenunarchivo:
:savefig("archivo.png")#Guardarenformato.png
:savefig("archivo.pdf")#Guardarenformato.pdf

Dibujarungrficodebarrashorizontales
:paises=("Alemania","Espaa","Francia","Portugal")
:posicion_y=np.arange(len(paises))
:unidades=(342,321,192,402)
:plt.barh(posicion_y,unidades,align="center")
:plt.yticks(posicion_y,paises)
:plt.xlabel('Unidadesvendidas')
:plt.title("VentasenEuropa")

Dibujarungrficodemtiplesbarrasverticales
:datos=[[1,2,3,4],[3,5,3,5],[8,6,4,2]]
:X=np.arange(4)
:plt.bar(X+0.00,datos[0],color="b",width=0.25)
:plt.bar(X+0.25,datos[1],color="g",width=0.25)
:plt.bar(X+0.50,datos[2],color="r",width=0.25)
:plt.xticks(X+0.38,["A","B","C","D"])

Dibujarungrficocircular
:impr=["b/n","color","dplex","A3"]
:vol=[25,31,46,10]
:expl=(0,0.05,0,0)
:pie(vol,explode=expl,labels=impr,autopct='%1.1f%%',shadow=True)
:plt.title("Impresin",bbox={"facecolor":"0.8","pad":5})
:plt.legend()

http://python-para-impacientes.blogspot.mx/2014/08/graficos-en-ipython.html

7/8

23/7/2015

Python 3 para impacientes: Grficos en IPython

IralndicedeltutorialdeIPython
PublicadoporPherkaden16:10

Recomendar esto en Google


Etiquetas:IPython

Entradamsreciente

Pginaprincipal

Entradaantigua

20142015|AntonioSurezJimnez,AndalucaEspaa
.PlantillaSimple.ConlatecnologadeBlogger.

http://python-para-impacientes.blogspot.mx/2014/08/graficos-en-ipython.html

8/8

También podría gustarte