Professional Documents
Culture Documents
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
: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
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
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
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
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
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
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
Entradamsreciente
Pginaprincipal
Entradaantigua
20142015|AntonioSurezJimnez,AndalucaEspaa
.PlantillaSimple.ConlatecnologadeBlogger.
http://python-para-impacientes.blogspot.mx/2014/08/graficos-en-ipython.html
7/7