Python 3 para Impacientes - Gráficos en IPython

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 8

5/4/2018 Python 3 para impacientes: Gráficos en IPython

Python 3 para impacientes


"Simple es mejor que complejo" (Tim Peters)

Tutorial de Python Tutorial de IPython Tutorial de EasyGUI Tutorial de Tkinter Tutorial de JupyterLab

jueves, 21 de agosto de 2014 Buscar

Buscar
Gráficos en IPython
Python para impacientes

Índice del Tutorial de Python 3


Índice del Tutorial de IPython
Índice del Tutorial de EasyGUI
Índice del Tutorial de Tkinter
Índice del Tutorial de JupyterLab

Anexos

Guía rápida de SQLite3

Entradas + populares

Gráficos en IPython
Unos de los motivos que inspiraron el
desarrollo de IPython fue contar con una
herramienta que uniera la posibilidad de
Unos de los motivos que inspiraron el desarrollo de IPython fue contar con una herramienta que realizar cálcu...
uniera la posibilidad de realizar cálculos avanzados con la obtención de representaciones
Operaciones con fechas y horas.
gráficas de los propios datos que facilitaran su análisis. Calendarios
Los módulos datetime y calendar amplían
IPython utiliza Pylab para realizar los gráficos. Pylab es una API para Python de la biblioteca las posibilidades del módulo time que
provee funciones para manipular
gráfica Matplotlib (matplotlib.pyplot) que utiliza Numpy, un módulo matemático que añade
expresiones de ti...
funciones para operar con vectores o matrices.
Tkinter: interfaces gráficas en Python
Para trabajar con representaciones gráficas de datos tenemos varias posibilidades con IPython: Introducción Con Python hay muchas
posibilidades para programar una interfaz
gráfica de usuario ( GUI ) pero Tkinter es
Iniciar la consola interactiva y el interfaz gráfico orientado a objetos: fácil de...

$ ipython3 --pylab Operaciones con archivos CSV


Un archivo CSV (de Valores Separados por
Iniciar la consola interactiva QT y el interfaz gráfico oriento a objetos: Comas) es un tipo de documento que
representa los datos de forma parecida a
una tabla, es d...
$ ipython3 qtconsole --pylab
Operaciones con archivos
Iniciar Jupyter Notebook y el interfaz gráfico orientado a objetos: Un archivo es información identificada con
un nombre que puede ser almacenada de
manera permanente en el directorio de un
$ jupyter notebook dispositivo. ...

En un cuaderno utilizar las funciones `%pylab` o `%matplotlib`. Tkinter: Diseñando ventanas gráficas
Introducción Para definir el modo en que
Cuando Notebook formaba parte de Ipython: deben colocarse los widgets (controles)
dentro de una ventana se utilizan los
gestores...
$ ipython3 notebook
Tkinter: Tipos de ventanas
A continuación, se muestran una serie de ejemplos que pretenden ilustrar la forma de trabajar Ventanas de aplicación y de diálogos En la
entrada anterior tratamos los distintos
con gráficos en IPython y Jupyter.
gestores de geometría que se utilizan para
dis...
En primer lugar iniciaremos la consola con:
Cadenas, listas, tuplas, diccionarios y
conjuntos (set)
$ ipython3 --pylab
Las cadenas , listas y tuplas son distintos
tipos de secuencias . Una secuencia es un
tipo de objeto que almacena datos y que
El argumento --pylab hace que al iniciar la sesión se carguen los módulos matplotlib.pylab y permite ...
NumPy con los alias mpl y np, respetivamente. Para obtener ayuda de estos módulos en
Expresiones Regulares. Módulo re
IPython:
El módulo re cuenta con funciones para
trabajar con expresiones regulares y
: numpy? ó numpy??

http://python-para-impacientes.blogspot.mx/2014/08/graficos-en-ipython.html 1/8
5/4/2018 Python 3 para impacientes: Gráficos en IPython
: pylab? ó pylab?? cadenas. La función match() La función
match comprueb...

Dibujar un gráfico de líneas Threading: programación con hilos (I)


En programación, la técnica que permite
El siguiente ejemplo crea un gráfico a partir de una lista de valores. En el eje "x" se representan que una aplicación ejecute
simultáneamente varias operaciones en el
8 elementos numerados del 0 al 7 y en el eje "y" los valores de cada uno de ellos siguiendo el
mismo espacio de proceso se...
orden de la lista.

: lista1 = [11,2,3,15,8,13,21,34] # Declara lista1 con 8 valores Archivo


: plt.plot(lista1) # Dibuja el gráfico
: plt.title("Título") # Establece el título del gráfico agosto 2014 (15)
: plt.xlabel("abscisa") # Establece el título del eje x
: plt.ylabel("ordenada") # Establece el título del eje y

Twitter

Sitios

ActivePython
Anaconda
Bpython
Django
Flask
Ipython
IronPython
Matplotlib
Este tipo de gráficos pueden crearse también con el intérprete interactivo de Python si se MicroPython
importan los módulos adecuados. Hay dos modos de hacerlo: Numpy
Pillow
>>> import matplotlib.pyplot as plt
PortablePython
>>> import numpy as np
PyCharm
>>> lista1 = [11,2,3,15,8,13,21,34]
>>> plt.plot(lista1) PyDev
>>> plt.show() PyGame
Pypi
o bien, PyPy
Pyramid
>>> from pylab import * Python.org
>>> lista1 = [11,2,3,15,8,13,21,34]
SciPy.org
>>> plt.plot(lista1)
Spyder
>>> plt.show()
TurboGears

En el ejemplo anterior aunque se importa el módulo Numpy no es necesario porque no se utiliza.


Se incluye la línea porque dicho módulo suele usarse con frecuencia cuando se trabaja con
gráficos.

Activar y desactivar el modo interactivo de dibujo

A continuación, se utilizan los métodos ion() y ioff() que activan o desactivan el modo interactivo
de dibujo para añadir, o no, nuevos datos sobre el gráfico actual.

: lista1 = [11,2,3,15,8,13,21,34] # Declara lista1 con 8 valores


: plt.plot(lista1) # Dibuja el gráfico
: plt.xlabel("abscisa") # Inserta el título del eje X
: plt.ylabel("ordenada") # Inserta el título del eje Y
: plt.ioff() # Desactiva modo interactivo de dibujo
: lista2 = [2,3,4,2,3,6,4,10] # Declara lista2 con 8 valores
: plt.plot(lista2) # No dibuja datos de lista2
: plt.ion() # Activa modo interactivo de dibujo
: plt.plot(lista2) # Dibuja datos de lista2 sin borrar datos de lista1

http://python-para-impacientes.blogspot.mx/2014/08/graficos-en-ipython.html 2/8
5/4/2018 Python 3 para impacientes: Gráficos en IPython

Para conocer en un momento dado qué modo está activo:

: plt.isinteractive() # La función devolverá True o False

Los métodos show() o draw() fuerzan que la información se muestre en el gráfico (datos, títulos,
etiquetas, etc.) aunque el modo interactivo esté desactivado:

: plt.ioff() # Desactiva modo interactivo


: lista3 = [9,15,9,15,9,15,9,15] # Declara lista3 con 8 valores
: plt.plot(lista3) # No dibuja datos de lista3
: plt.show() # Fuerza dibujo de datos de lista3
: plt.title("Gráfica") # Establece nuevo título pero no muestra en gráfico
: plt.show() # Actualiza gráfico con nuevo título
: plt.grid(True) # Activa cuadrícula del gráfico pero no se muestra
: plt.show() # Muestra cuadrícula del gráfico
: plt.ion() # Activa modo interactivo de dibujo

Añadir leyendas a un gráfico

Para añadir leyendas al gráfico anterior asignar al parámetro "label=" de plot() el literal de la
leyenda a mostrar. Y después, ejecutar el método legend().

: plt.plot(lista1, label = "Enero")


: plt.plot(lista2, label = "Febrero")
: plt.plot(lista3, label = "Marzo")
: plt.legend()

Posición de leyendas (loc=):


upper, arriba
lower, abajo
center, centro
left, izquierda y
right, derecha

Para colocar la leyenda en la parte superior del gráfico y a la izquierda:

: plt.legend(loc="upper left")

http://python-para-impacientes.blogspot.mx/2014/08/graficos-en-ipython.html 3/8
5/4/2018 Python 3 para impacientes: Gráficos en IPython

Cambiar estilos de línea, marcadores y colores de un gráfico

Para dar claridad a los gráficos pueden establecerse distintos estilos de líneas, marcadores y
colores:

Estilos de Líneas (linestyle=):


-, Línea Sólida
--, Línea discontinua
:, Línea punteada
-., Línea punteada discontinua. y
None, Ninguna línea

Marcadores (marker=):
+, Cruz
., Punto
o,Círculo
*, Estrellas
p, Pentágonos
s, cuadrados
x, Tachados
D, Diamantes
h, Hexágonos y
^, Triángulos

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="upper left")

http://python-para-impacientes.blogspot.mx/2014/08/graficos-en-ipython.html 4/8
5/4/2018 Python 3 para impacientes: Gráficos en IPython

También, es posible cambiar las fuentes de los textos, los grosores de las líneas y otras
propiedades que modifican el aspecto de un gráfico.

Añadir rótulos a los ejes

En el siguiente ejemplo se crea un gráfico nuevo con el método figure() donde se representa
sólo una lista de valores y se definen los rótulos de los ejes.

: plt.figure() # Comenzamos un nuevo gráfico (figura)


: lista1 = [11,2,3,15,8,13,21,34]
: plt.title("Título")
: plt.xlabel("abscisa")
: plt.ylabel("ordenada")
: indice = np.arange(8) # Declara un array
: 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 módulo Numpy con los siguientes
valores:

- El array que se obtiene con np.arange(8) contiene los siguiente valores:

array([0, 1, 2, 3, 4, 5, 6, 7])

- El array que se obtiene con np.arange(0,51,10) contiene los siguiente valores:

array([ 0, 10, 20, 30, 40, 50])

Los arrays se utilizan para definir los rótulos que se mostrarán en ambos ejes. En el eje "x" el
valor del índice es sustituido por un carácter alfabético y en el eje "y", directamente, se muestran
en la escala los valores del propio array.

Trabajar con varios gráficos

- Activar gráfico por su número:

Si estamos trabajando con varios gráficos a la vez para activar uno concreto indicaremos el

http://python-para-impacientes.blogspot.mx/2014/08/graficos-en-ipython.html 5/8
5/4/2018 Python 3 para impacientes: Gráficos en IPython
número que aparece en su barra de título. Cualquier acción que se realice a continuación se
hará sobre dicho gráfico: plt.figure(Numero)

Ejemplo:

: plt.figure() # Añade un nuevo gráfico y lo activa


: 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) # Activa el gráfico 1
: plt.title("Título") # Cambia el título del gráfico 1

- Activar gráfico por su nombre:

Cuando se trabaja con varios gráficos, otra posibilidad de activar un gráfico determinado es
referirse a su nombre:

: plt.figure('Regiones')
: plt.figure('Dispersión')
: elementosx = np.random.rand(10) # Genera array 10 elementos eje x
: elementosy = np.random.rand(10) # Genera array 10 elementos eje y
: plt.scatter(elementosx, elementosy)
: plt.figure('Regiones')
: plt.plot(elementosx,elementosy)

- Generar dos gráficos en la misma ventana:

Dividir la ventana en 1 fila x 2 columnas y dibujar primer gráfico

: plt.subplot(1,2,1)
: plt.plot((1,2,3,4,5))

Dividir la ventana en 1 fila x 2 columnas y dibujar segundo gráfico

: plt.subplot(1,2,2)
: plt.plot((5,4,3,2,1))

Continuar "dibujando" o reiniciar el gráfico

Con el método hold() se conmutan dos estados: uno para continuar "dibujando" (True) sobre un
gráfico y otro para reiniciar el gráfico (False).

: plt.hold() # Conmutar de True a False y de False a True

Para comprobar el estado en un momento dado:

: plt.ishold() # devuelve -> True / False

Borrar un gráfico. Borrar los ejes. Cerrar un gráfico

El método cla() borra toda la información relacionada con los ejes de un gráfico y el método clf()
borra todo el gráfico. Por otro lado, close() termina el gráfico cerrando su ventana.

http://python-para-impacientes.blogspot.mx/2014/08/graficos-en-ipython.html 6/8
5/4/2018 Python 3 para impacientes: Gráficos en IPython
: plt.cla() # Borrar información de los ejes
: plt.clf() # Borrar un gráfico completo
: plt.close() # Terminar un gráfico

Guardar un gráfico como .png/.pdf

Para guardar la imagen de un gráfico en un archivo:

: savefig("archivo.png") # Guardar en formato .png


: savefig("archivo.pdf") # Guardar en formato .pdf

Dibujar un gráfico de barras horizontales

: paises = ("Alemania", "España", "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('Unidades vendidas')
: plt.title("Ventas en Europa")

Dibujar un gráfico de mútiples barras verticales

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

Dibujar un gráfico circular

: impr = ["b/n", "color", "dúplex", "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("Impresión", bbox={"facecolor":"0.8", "pad":5})
: plt.legend()

http://python-para-impacientes.blogspot.mx/2014/08/graficos-en-ipython.html 7/8
5/4/2018 Python 3 para impacientes: Gráficos en IPython

Relacionado:
Gráficos con GooPyCharts

Ir al índice del tutorial de IPython

Publicado por Pherkad en 16:10

Etiquetas: IPython, Jupyter

4 comentarios:
Gerardelli Santiago Cruz dijo...
En el gráfico de barras múltiples ¿como se le agrega el título y etiquetas a las barras?
21 de mayo de 2017, 13:58

Carlos Miguel Ortega Guevara dijo...


Plt.title("nombre de la muesta o poblacion")
26 de agosto de 2017, 23:17

Kenny Fernand dijo...


Buenas tardes, si yo estoy generando varios gráficos, como les puedo asignar un nombre
masivamente? grafico1, grafico2, graficoN...y si los quiero guardar para después mostrarlos
"los gráficos de este análisis son:"?

muchas gracias.
18 de septiembre de 2017, 15:07

Alvaro Fernandez dijo...


Super interesante estos tutoriales, saludos.
AprenderPython
3 de noviembre de 2017, 4:05

Publicar un comentario

Entrada más reciente Página principal Entrada antigua

Suscribirse a: Enviar comentarios (Atom)

2014-2018 | Alejandro Suárez Lamadrid y Antonio Suárez Jiménez, Andalucía - España


. Tema Sencillo. Con la tecnología de Blogger.

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

También podría gustarte