Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
Dibujarungrficodelneas
Elsiguienteejemplocreaungrficoapartirdeunalistadevalores.Eneleje"x"serepresentan
8elementosnumeradosdel0al7yeneleje"y"losvaloresdecadaunodeellossiguiendoel
ordendelalista.
PortablePython
Pypi
Python.org
SciPy.org
Spyder
: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
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
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
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
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
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
IralndicedeltutorialdeIPython
PublicadoporPherkaden16:10
Entradamsreciente
Pginaprincipal
Entradaantigua
20142015|AntonioSurezJimnez,AndalucaEspaa
.PlantillaSimple.ConlatecnologadeBlogger.
http://python-para-impacientes.blogspot.mx/2014/08/graficos-en-ipython.html
8/8