0% encontró este documento útil (0 votos)
27 vistas38 páginas

Parte2 Matplotlib

Cargado por

Ruben Fernandez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
27 vistas38 páginas

Parte2 Matplotlib

Cargado por

Ruben Fernandez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 38

Introducción a Python Orientado

a Problemas de Optimización en
Ingeniería (VI Edición, 2021)

Daniel Gutiérrez Reina, [email protected]


Ignacio González Prieto, [email protected]
Bloques del curso

 Bloque I: Introducción a Python y sus librerías para


análisis de datos (20 horas)
 Bloque II: Introducción a los algoritmos genéticos (10
horas)
Partes del primer bloque

 Parte I (Python General): Aprender nociones básicas sobre programación en


Python. Tipos de objetos (listas, tuplas, diccionarios, etc.), manejo de
funciones, control de flujo, y mucho más!!! → 12 horas aprox.
 Parte II (Numpy): Vectores o arrays multi dimensionales en Python. → 2,5
horas aprox.
 Parte III (Maplotlib): Representación gráfica en Python. → 2,5 hora aprox.
 Parte IV (Pandas): Manejo de datos en Python (dataframe). → 2,5 horas
aprox.
 Parte V (Scipy): Librería científica → 1 hora.
 Parte VI (Seaborn): Visualización de datos → 1 hora.
Recapitulando … Punto de partida
Hasta ahora sólo hemos aprendido los componentes más básicos de Python.

Vamos a comenzar a aprender los paquetes de Python más utilizados para el análisis de datos.
Tercer módulo del curso
Matlplotlib(2 horas aprox.):

1) Introducción a Matplotlib.
2) Pyplot → conceptos generales.
3) Tipo de gráficas y sus propiedades: histogramas, dispersión, diagrama de
barras, subplot, etc.
4) Matplotlib con objetos.
5) Estilos.
Vamos a graficar cosas …. Matplotlib
Paquete muy potente para realizar graficas → Realmente sólo vamos a ver una
introducción un curso completo daría para un número de horas incluso mayor que
este curso.

Página oficial:

http://matplotlib.org/

La documentación no es muy buena, más bien liosa. La forma más sencilla es


encontrar un ejemplo de la gráfica que queremos realizar e intentar modificar el
código a nuestro problema.
Formas de trabajar con Matplotlib
Existen tres formas de trabajar con Matplotlib:

• pyplot → Es un módulo sencillo que contiene funciones para graficas


funciones (este le vamos a dedicar más tiempo) → state-based, state
machine.
http://matplotlib.org/api/pyplot_api.html

• pylab → Es un módulo que integra numpy y pyplot en un mismo espacio de


nombre (no lo vamos a ver en este curso).
http://scipy.github.io/old-wiki/pages/PyLab

• OO (object oriented) → Todo es un objeto, es la forma más compleja, pero


también la más potente.
Figuras en Matplotlib
Anatomía de una figura:
Primer paso … incluir Matplotlib …
Mi prime script con Matplotlib: → grafica1.py

La figura la podemos guardar … botón


derecho … o plt.savefig(“nombre.png”)

Pyplot es el módulo más básico dentro del paquete matplotlib.


→ Se parece mucho al sintaxis de Matlab.
Compliquemos un poco el asunto → Vamos a
graficar una función
Vamos a representar la función x^2.

→ Abrir grafica2.py

Ejercicio:
Representar gráficamente la función x^3 + 1
en el intervalo [-1, 1].

Más información: http://matplotlib.org/api/pyplot_api.html


Seguimos … Rejilla, ejes y más cosas …
→ Abrir grafica3.py

Resumen:

Límites ejes → plt.axis([xmin, xmax, ymin, ymax])


Etiqueta ejes → plt.xlabel(“<tag"), plt.ylabel(“tag")
Título → plt.title(“Título")
Legenda → plt.legend(<lista>,<posición>)
Guardar figura → plt.save(“nombre.formato”)
Customizar…
Ejercicio:
Poner “bonita” la gráfica del ejercicio anterior f= x^3 + 1

Resumen:

Límites ejes → plt.axis([xmin, xmax, ymin, ymax])


Etiqueta ejes → plt.xlabel(“<tag"), plt.ylabel(“tag")
Título → plt.title(“Título")
Legenda → plt.legend(<lista>,<posición>)
Guardar figura → plt.save(“nombre.formato”)

Colores:
http://stackoverflow.com/questions/22408237/named-colors-in-matplotlib
Varias funciones en una figura
Vamos a graficar varias funciones a la vez, por ejemplo:
f1 = x^2 y f= x^3 en el intervalo [-1, 1]

→ Abrir grafica4.py
Hagamos unos ejercicios
Ejercicio:
Graficar en una misma figura las funciones:
𝑦1 = 𝑥
𝑦2 = 𝑥 2
𝑦3 = 𝑥 3 en x ∈ [−1,1]

Utilizando el método plot y un bucle for representar cada función con un color y
un marcador diferente.

También lo podéis hacer utilizando funciones universales (vectorización de


funciones).
Tablas útiles para decorar las figuras
Marcadores: Tabla de colores:

http://matplotlib.org/api/markers_api.html

Estilos de líneas:

Palabras clave:
Antes de seguir … Un error típico cuando se
utiliza el método plot → Mismas dimensiones!!
→ Abrir grafica5.py

Si la gráfica aparece en blanco normalmente es que


ha habido un error.
Tipos de gráficas
Histogramas
→ Abrir grafica6

Nadie se sabe todos los parámetros


es imposible ☺ → Se consultan cuando se
vaya a utilizar
Diagramas de dispersión (Scatter plot)
→ Abrir grafica7.py
Diagramas de barras
→ Abrir grafica8.py

Para las divisiones de los ejes:


xticks(<posiciones>, <valores>)
yticks(<posiciones>, <valores>)

Ojo, la anchura de las barras por


defecto es de 0,8 (versiones anteriores).
Barras de errores
→ Abrir grafica9.py
Diagrama de barra con errores
Vamos a ver un ejemplo mucho más completo, 1) tomamos los datos de un archivo,
2) calculamos intervalos de confianza, y 3) visualizamos los resultados.

→ Abrir grafica10.py
→ Se usa medidas.csv
Diagrama de bigotes
Visualizar los salaries en Estados Unidos

→ Abrir grafica11.py
→ Se usa salarios.csv
Representando matrices 2D
plt.imshow()

→ Abrir grafica12.py

Tutorial sobre mapas de colores:


https://matplotlib.org/tutorials/colors/colormaps.html
Subplot …
Varias gráficas en una misma figura

→ Abrir grafica13.py 221 222

223 224
Propiedades de las figuras

• <num> → número de figura


• <figsize> → Tamaño de la figura en pulgadas 2,54 cm
• <dpi> → resolución de la figura

Los valores por defecto están guardados en un diccionario rcParams.

Si queremos varías figuras, tenemos que utilizar un num para cada una .
Una pincelada de Matplotlib con objeto
En Python todo es un objeto …

Jerarquía de objetos

Detalles importantes:

• Una figura puedes tener distintos axes.


• Cada objeto axes es un Gráfico.
• Cada objeto axes tienes al menos dos axis.
Una pincelada de Matplotlib con objeto
¿Qué hemos estado haciendo hasta ahora con plt? Por ejemplo, con plt.plot.

Función de alto nivel Selecciona el Selecciona el axes de


que crea la figura y axes actual. la figura que esté activa.
y los axes
Una pincelada de Matplotlib con objeto
Los atributos de los gráficos (axes):

Para cada atributo realmente primero tenemos que obtener el axes actual y aplicar
el método correspondiente sobre el objeto.

Ejemplos:

plt.tittle →

Ahora casi todos los métodos que se aplican sobre los objetos axes son de tipo set_
Una pincelada de Matplotlib con objeto
Ejemplos

→ Abrir grafica14.py
Una pincelada de Matplotlib con objetos
Ejemplos:

→ Abrir grafica14.py

El texto entre $$ en títulos y ejes → Latex.


Diagrama circular
Más diagramas en Python…

→ Abrir grafica15.py
Gráficas 2D
→ Abrir grafica16.py 𝑧 = cos(𝑥 2 + 𝑦 2 )

-Contourf(x,y,z)

-Meshgrid(x,y)

-Colorbar

-Axis(‘square’)
Gráficas 2D
→ Abrir grafica16.py

-Meshgrid(x,y)

Crea una malla a partir


de dos vectores 1D

Está inspirado en la
función de Matlab.
Gráficas 2D
-Meshgrid(x,y) 𝑧 = cos(𝑥 2 + 𝑦 2 )

-Contourf(x,y,z)

Dibujamos la superficie. La z es la función.

-Colorbar()
Se asigna a un mapa de colores.
http://matplotlib.org/examples/color/colorm
aps_reference.html

-Axis(‘square’)
Para que la figura salga cuadrada.
Gráficas 3D
→ Abrir grafica17.py 𝑧 = cos( 𝑥 2 + 𝑦 2 )

-plot_surface

-figure.gca(projection=‘3d’)

-Nuevos módulos
Estilos
plt.style.use(“nombre estilo”)

Abrir grafica18.py
→ Hay que tener en cuenta que el estilo permanece constante durante toda la sesión

https://matplotlib.org/tutorials/introductory/customizing.html
Bibliografía

 Matplotlib for Python Developers. Build remarkable publication quality plots


the easy way. Sandro Tosi. 2009.

 Aprendiendo a programar en Python. Universidad de Málaga.


https://www.umaeditorial.uma.es/libro/aprendiendo-a-programar-en-
python_2501/

 Python for data analysis O’Reilly


https://www.oreilly.com/library/view/python-for-data/9781491957653/

 Documentación oficial: https://docs.python.org/3/library/index.html

También podría gustarte