[MÚSICA] [MÚSICA] Hola, en el vídeo pasado vimos cómo construir figuras con un gráfico dentro de ellas. En este vídeo, aprenderemos a construir figuras con subplots, es decir, figuras con más de un gráfico dentro de ellas. Primero veremos cómo construir figuras con varias gráficas de línea y al final del vídeo, veremos un ejemplo que las mezcla con una gráfica de dispersión. Empecemos analizando la primera figura con múltiples gráficas que vamos a construir. Como podemos ver se trata de 6 gráficas de línea que nos muestran las temperaturas mes a mes en 6 ciudades de Colombia. Las 6 gráficas están organizadas en 2 filas y 3 columnas y vale la pena mencionar que para Matplotlib el orden de las figuras es como se muestra en la imagen. La primera es la de arriba a la izquierda y la última es la de abajo a la derecha después de haber recorrido cada fila. Otra cosa que vale la pena notar en esta imagen, es que los ejes son compartidos en las filas y las columnas, es decir, que en la fila superior no aparecen las etiquetas del eje x porque se encuentran en la fila de abajo. Lo mismo pasa con las etiquetas del eje y que se encuentran sólo a la izquierda de la figura. Además de ahorrar un poco de espacio, esto refuerza la idea de que las 6 gráficas están presentadas en la misma escala y se pueden comparar con facilidad entre si. En cambio lo que si es diferente en cada gráfica es el título, cada una tiene el nombre de la ciudad que le corresponde. Veamos ahora cómo debemos usar Matplotlib para construir una figura como esta. A la derecha tenemos ahora el código que usamos para construir la gráfica. En primer lugar, veamos que ahora estamos usando la función subplots en lugar de la función figure. Esta función nos retorna una dupla con 2 cosas, la primera es la figura misma, la segunda es una lista o una matriz con los objetos de tipo ax en los que van a quedar nuestras gráficas. En este caso, le indicamos a la función que queriamos organizar las gráficas en 2 filas y 3 columnas, así que en la variable axes nos va a quedar una matriz. Si alguna de las 2 dimensiones hubiera sido 1, el resultado sería una lista. ¿Recuerdan que en el vídeo pasado teníamos que calcular la posición y el tamaño de cada cosa cuando invocábamos a la función add_axes? Eso you no lo tenemos que hacer. La función subplots se encargará de todos los cálculos. Los otros parámetros de estos llamados son share x y share y, los cuales nos sirven para indicarle a Matplotlib que queremos que se compartan los ejes en las filas y en las columnas. Lo que viene en las siguientes líneas es simplemente un recorrido sobre la matriz de axes armando una gráfica independiente para cada ciudad. Lo único que cambia son los datos que utilizamos en la función plot y el nombre de la ciudad que utilizamos como título de cada gráfica. Por último, tenemos una invocación a la función tight_layout. Esta invocación es necesaria para que Matplotlib recalcule las posiciones de las gráficas, teniendo también en cuenta el tamaño de las etiquetas. Sino hacemos esto, corremos el riesgo de que las gráficas queden montadas una sobre la otra. Veamos ahora una pregunta antes de continuar. Para mostrar que cada uno de los objetos ax que se encuentran en la matriz se comportan exactamente igual que si estuvieran en su propia figura, acá hemos agregado un gemelo para mostrar también las precipitaciones, usando exactamente el mismo código que en el vídeo anterior. El resultado es que ahora cada gráfica tiene 2 series lineas, sin embargo hay un pequeño problema con esto. Los nuevos ejes aparecen repetidos y no hay una forma sencilla de solucionar este problema. Lo único que podríamos hacer es acceder a los elementos gráficos y cambiarles el color para que no fueran visibles. En uno de los siguientes vídeos veremos cómo podríamos lograr un efecto similar. Esta última figura aunque no es muy elegante, sirve para mostrar que no todas las gráficas en una figura tienen que ser del mismo tipo y que además, el mecanismo de ubicar axes en posiciones arbitrarias sigue existiendo. Para esto, agregamos una invocación a la función add_axes y le pasamos los parámetros para ubicar la nueva gráfica en su posición. Luego agregamos información a la gráfica, pero no usando la función plot sino la función scutter, la cual produce diagramas de dispersión a partir de conjuntos de coordenadas x y y. Como estamos invocando la función muchas veces sobre el mismo objeto de tipo axes, Matplotlib se encarga de ir cambiando los colores para cada nuevo conjunto de puntos. Entonces, recuerde que si quiere incluir varias gráficas en la misma figura, puede usar la función add_axes o la función subplots. La función add_axes es mucho más flexible pero también requiere más esfuerzo para organizar correctamente los elementos. No olvide tampoco el orden en que organiza los elementos la función subplots empezando por arriba a la izquierda y recorriendo fila por fila. En el link de abajo, podrán encontrar un tutorial oficial de Matplotlib en el que le explicarán cómo tener subplots, pero organizadas de formas mucho más complicadas. [MÚSICA]