Introducción a la Computación Científica con
Transcript of Introducción a la Computación Científica con
![Page 1: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/1.jpg)
Introducción a la Computación Científica con PythonClase 4:
Matplotlib – Gráficas en PythonDiego Passarella Víctor Viana
![Page 2: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/2.jpg)
¿Qué es matplotlib?● Es la librería de visualización más popular de Python● El conocimiento de esta librería sigue siendo fundamental en
cualquier proyecto de Data Science.● Matplotlib y sus dependencias están disponibles como
paquetes para las distribuciones de MacOS, Windows y Linux:python -m pip install -U pip
python -m pip install -U matplotlib
![Page 3: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/3.jpg)
Nomenclatura
![Page 4: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/4.jpg)
Nomenclatura - figure
![Page 5: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/5.jpg)
Nomenclatura - axes
![Page 6: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/6.jpg)
Nomenclatura - plot
![Page 7: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/7.jpg)
La función plot
![Page 8: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/8.jpg)
La función subplotsCrea una figura y uno o más conjuntos de ejes (por defecto se crea uno solo)
![Page 9: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/9.jpg)
Las funciones figure y axes●figure crea de forma explícita una figura●axes crea de forma explícita un conjunto de ejes en la última figura que se haya creado o referenciado
![Page 10: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/10.jpg)
Interfaces de programación
Interfaz estilo "MATLAB"
![Page 11: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/11.jpg)
Interfaces de programación
Interfaz orientada a objetos (OO)
![Page 12: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/12.jpg)
La función plotLa función plot recibe un conjunto de valores x e y, y los muestra en el plano definido por los ejes como puntos unidos por líneas
![Page 13: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/13.jpg)
La función plotSi no se indica el argumento x, se asigna un conjunto de valores por defecto formado por números enteros desde 0 hasta n-1, siendo n el número de puntos a mostrar (es decir, la longitud de y)
![Page 14: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/14.jpg)
La función plotSi ejecutamos dos o más veces la función plot antes de ejecutar la función show, todas las gráficas se mostrarán en el mismo conjunto de ejes:
![Page 15: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/15.jpg)
La función plot
El conjunto de ejes y la figura dentro de la cual se muestran son creados automáticamente con la primera ejecución de plot, y se mantendrá dicha figura activa hasta que se muestren las gráficas con la función show. Si, posteriormente, volvemos a ejecutar la función plot, se creará una nueva figura y un nuevo conjunto de ejes.
![Page 16: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/16.jpg)
Estilo y ancho de línea
linestyle: permite especificar el estilo de línea.
![Page 17: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/17.jpg)
Estilo y ancho de línea
![Page 18: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/18.jpg)
Estilo y ancho de líneaLinewidth: nos permite controlar el ancho de las líneas generadas
![Page 19: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/19.jpg)
Marcadores y coloresEs posible mostrar encima de cada uno de esos puntos un símbolo (un marcador) con el parámetro marker
![Page 20: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/20.jpg)
Marcadores y colores
![Page 21: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/21.jpg)
Marcadores y colores - markersize
![Page 22: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/22.jpg)
Marcadores y colores - color
![Page 23: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/23.jpg)
Marcadores y colores - color
![Page 24: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/24.jpg)
EtiquetasParámetro label asigna a una gráfica una etiqueta que será mostrada en la leyenda (si activamos ésta)
![Page 25: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/25.jpg)
Tamaño y color de fondofigsize: que nos permite especificar el tamaño de la figura en pulgadas, indicando en primer lugar el ancho y, a continuación, el alto.
![Page 26: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/26.jpg)
Tamaño y color de fondofacecolor controla el color del fondo de la figura.
![Page 27: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/27.jpg)
Borde
![Page 28: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/28.jpg)
Título
![Page 29: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/29.jpg)
La función subplots
![Page 30: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/30.jpg)
La función axes
![Page 31: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/31.jpg)
La función add_subplot
![Page 32: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/32.jpg)
https://matplotlib.org/tutorials/introductory/usage.html#parts-of-a-figure
![Page 33: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/33.jpg)
Grid
![Page 34: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/34.jpg)
Grid
![Page 35: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/35.jpg)
Mapas de color● matplotlib ofrece un conjunto de mapas de color predefinidos.● Éstos son diccionarios de colores que "mapean" los valores
representados en nuestras gráficas a otros conjunto de colores.● La idea detrás de los mapas de colores es encontrar una buena
representación en espacios tridimensionales, colores capaces de transmitir la sensación de profundidad que los colores lisos no transmiten correctamente.
● La elección correcta de un mapa de color puede cambiar radicalmente la forma en la que percibimos una gráfica
![Page 36: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/36.jpg)
https://matplotlib.org/tutorials/colors/colormaps.html
![Page 37: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/37.jpg)
Gráficos en 2D Lineas
![Page 38: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/38.jpg)
Gráficos en 2D Dispersión
![Page 39: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/39.jpg)
Gráficos en 2D Historgramas
![Page 40: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/40.jpg)
Gráficos en 2D Historgramas con
etiquetas● Tras crear el histograma y
recoger el resultado en las variables v, m y g, recorremos con un for cada uno de los rectángulos referenciados en g.
● Para cada uno de ellos extraemos su posición x y su altura utilizando los métodos get_x y get_height.
● Por último, mostramos el valor del bin (contenido en v[i]) en la posición (posx, posy)
![Page 41: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/41.jpg)
Gráficos en 2D Histogramas de dos
variables
plt.hist2d(x, y, bins = (25, 20));plt.colorbar();
● Es posible modificar el número de áreas en las que dividir el plano utilizando el parámetro bins.
● Si éste es un número, se dividirá tanto el eje x como el eje y en tantos bloque como indique.
![Page 42: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/42.jpg)
Gráficos en 2D Circulares
![Page 43: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/43.jpg)
Gráficos en 2D Circulares
● La distancia de las etiquetas al centro del gráfico se controla mediante el parámetro labeldistance
● Es posible separar uno o varios de los sectores con el parámetro explode
● Podemos mostrar los porcentajes representados por cada sector utilizando el parámetro autopct
● El parámetro pctdistance controla la distancia del número mostrado al centro del gráfico
![Page 44: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/44.jpg)
Gráficos en 2D Barras
![Page 45: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/45.jpg)
Gráficos en 2D Barras
![Page 46: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/46.jpg)
Gráficos en 2D - Barras de Error
yerr margen de error
![Page 47: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/47.jpg)
Gráficos en 2D – Curvas de nivel
def f(x, y): return np.sin(x) ** 2 + np.cos(5 + x * y) + 2 * np.cos(x) x = np.linspace(0, 5, 100)y = np.linspace(0, 5, 100)X, Y = np.meshgrid(x, y)Z = f(X, Y)
![Page 48: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/48.jpg)
Gráficos en 2D – Curvas de nivel
def f(x, y): return np.sin(x) ** 2 + np.cos(5 + x * y) + 2 * np.cos(x) x = np.linspace(0, 5, 100)y = np.linspace(0, 5, 100)X, Y = np.meshgrid(x, y)Z = f(X, Y)
![Page 49: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/49.jpg)
Gráficos en 2D – Curvas de nivel
![Page 50: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/50.jpg)
Gráficos en 3DPara habilitar la creación de este tipo de gráficos basta importar el objeto Axes3D de la sublibrería mpl_toolkits.mplot3d, y generar un conjunto de ejes con el método gca asociado a la figura indicando que la proyección es de tipo "3d"
![Page 51: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/51.jpg)
Gráficos 3D - Superficies
X = np.arange(-10, 10, 0.25)Y = np.arange(-10, 10, 0.25)X, Y = np.meshgrid(X, Y)Z = np.sin(np.sqrt(X**2 + Y**2))
![Page 52: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/52.jpg)
Gráficos 3D - Wireframes
La generación de "wireframes" o gráficos de mallas es extremadamente simple una vez que sabemos generar una superficie. El método es plot_wireframe y recibe como primeros tres argumentos las matrices X, Y y Z que hemos visto para la función plot_surface.
![Page 53: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/53.jpg)
Gráficos 3D - Curvas de nivel
X = np.linspace(-1.2, 1.2, 100)Y = np.linspace(-1.2, 1.2, 100)X, Y = np.meshgrid(X, Y)Z = np.abs(0.4 ** 2 - (0.6 - (X ** 2 + Y ** 2) ** 0.5) ** 2) **
![Page 54: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/54.jpg)
Gráficos 3D – Dispersión
X = np.linspace(-1.2, 1.2, 100)Y = np.linspace(-1.2, 1.2, 100)X, Y = np.meshgrid(X, Y)Z = np.abs(0.4 ** 2 - (0.6 - (X ** 2 + Y ** 2) ** 0.5) ** 2) **
![Page 55: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/55.jpg)
Animaciones● El paquete matplotlib.animation ofrece algunas clases para
crear animaciones. ● FuncAnimation crea animaciones llamando repetidamente a
una función.● Ejemplo: animate() que cambia las coordenadas de un punto
en el gráfico de una función sinusoidal.
![Page 56: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/56.jpg)
![Page 57: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/57.jpg)
Guarda la animación en gif● save(): método para guardar una Animation de objetos
![Page 58: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/58.jpg)
Controles interactivos con matplotlib.widgets● Matplotlib ofrece widgets neutros de GUI. Los widgets
requieren un objeto matplotlib.axes.Axes● La función de actualización es activada por el evento
on_changed() del control deslizante
![Page 59: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/59.jpg)
![Page 60: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/60.jpg)
![Page 61: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/61.jpg)
Insertando fórmulas TeX● Las fórmulas TeX se pueden insertar en la gráfica usando la
función rcimport matplotlib.pyplot as pltplt.rc(usetex = True)
![Page 62: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/62.jpg)
Insertando fórmulas TeX● Las fórmulas TeX se pueden insertar en la gráfica accediendo
a los rcParamsimport matplotlib.pyplot as pltparams = {'tex.usetex': True}plt.rcParams.update(params)
![Page 63: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/63.jpg)
Insertando fórmulas TeX● TeX utiliza la barra invertida \ para comandos y símbolos, que
puede entrar en conflicto con caracteres especiales en las cadenas de Python.
● Para utilizar barras diagonales literales en una cadena de Python, deben ser evadidas o incorporadas en una cadena en bruto:
plt.xlabel('\\alpha')plt.xlabel(r'\alpha')
![Page 64: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/64.jpg)
![Page 65: Introducción a la Computación Científica con](https://reader035.fdocuments.co/reader035/viewer/2022070712/62c4b18877d03c779d49f7a6/html5/thumbnails/65.jpg)