Está en la página 1de 7

18/5/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...

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

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:
:numpy?numpy??
:pylab?pylab??

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

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

Operacionesconfechasyhoras.
Calendarios
Losmdulosdatetimeycalendaramplan
lasposibilidadesdelmdulotimeque
proveefuncionesparamanipular
expresionesdetiemp...
EasyGUI,lainterfazgrficafcil
IntroduccinEasyGUIesunmdulode
interfazgrficaparaPython2.x/3.xcreado
porStephenRaymondFergbasadoen
Tkinter,unbindin...
ExpresionesRegulares.Mdulore
Elmdulorecuentaconfuncionespara
trabajarconexpresionesregularesy
cadenas.Lafuncinmatch()Lafuncin
matchcomprueba...
Fundamentosparaprocesarimgenescon
Pillow(I)
Pillowesunavariante(ofork)delapopular
libreraPIL(PythonImageLibrary)que
permiteprocesarconfacilidadimgenes
conPyt...
Cadenas,listas,tuplas,diccionariosy
conjuntos(set)
Lascadenas,listasytuplassondistintos
tiposdesecuencias.Unasecuenciaesun
tipodeobjetoquealmacenadatosyque
permiteelacce...
MostrarcajasdemensajesconEasyGUI
Continuamosconociendomsdetallesdel
mduloEasyGUIdespusdelabreve
introduccindelcaptuloanterior.A
continuacin,re...
OperacionesconarchivosCSV
UnarchivoCSV(deValoresSeparadospor
Comas)esuntipodedocumentoque
representalosdatosdeformaparecidaa
unatabla,esde...
GlosariodefuncionesmgicasIPython
FuncionesmgicasorientadasalneasA
%aliasDefinirunaliasparauncomandodel
sistema.%alias_magicCrearuna...
EntornosvirtualesconPython
IntroduccinUnentornovirtualPythones
unespaciodetrabajocreadoapartirde
unainstalacindePythonexistenteenun
sistem...

Archivo

Archivo
Sitios

1/7

18/5/2015

Python 3 para impacientes: Grficos en IPython


Bpython

: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

Ipython
IronPython
Matplotlib
Numpy
Pillow
PortablePython
Pypi
Python.org
SciPy.org
Spyder

Twitter

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

Paraconocerenunmomentodadoqumodoestactivo:
:plt.isinteractive()#LafuncindevolverTrueoFalse

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

2/7

18/5/2015

Python 3 para impacientes: Grficos en IPython


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

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

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

3/7

18/5/2015

Python 3 para impacientes: Grficos en IPython


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

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.

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

4/7

18/5/2015

Python 3 para impacientes: Grficos en IPython

Trabajarconvariosgrficos
Activargrficoporsunmero:
Si estamos trabajando con varios grficos a la vez para activar uno concreto indicaremos el
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))

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

5/7

18/5/2015

Python 3 para impacientes: Grficos en IPython

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.
: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"])

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

6/7

18/5/2015

Python 3 para impacientes: Grficos en IPython

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

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

7/7