Veamos cómo realizar gráficas a partir de un dataframe para analizar datos, utilizando Pandas. Al igual que en los anteriores "Manos a la Obra", estaremos utilizando nuestro archivo con la información de peajes en Colombia. Realicemos algunas gráficas sobre este dataframe que nos permitan analizar mejor los datos que contiene. Para poder graficar correctamente, he realizado algunas correcciones sobre el dataframe que he cargado previamente. El cambio fue reemplazar la cadena "Null" en los registros que no tenían departamento y estandarizado el nombre del departamento de Antioquia, ya que había algunas centradas en la cadena en mayúsculas. Para ambas correcciones, he usado el método "replace" de Pandas. Ahora sí, empecemos graficando un boxplot o diagrama de cajas y bigotes que nos permita analizar el precio de la tarifa de categoría uno para cada uno de los departamentos del país. Esto lo logramos con la función "boxplot" que aplicaremos sobre el dataframe resultante de aplicar un filtro sobre el original, que se queda tan solo con las columnas pertenecientes a la tarifa y al departamento. En el parámetro "by", indicaremos la columna al dataframe, con la cual agruparemos los datos, mientras el "rot" nos permite rotar las etiquetas con los nombres de los departamentos y "figsize", configurar el tamaño de la figura a través de una tupla. Para mejorar la visualización, he asignado también un título y etiquetas a los ejes de la gráfica a través de pyplot. Finalmente, con "show" mostramos la gráfica. Ejecutemos para ver el resultado. Ejecutamos. Y aquí vemos el resultado de la gráfica. Entonces, como podemos ver que a nuestro título "Tarifas categoría uno por departamento", las etiquetas de los ejes, aquí la tarifa en pesos. La parte de abajo, el departamento. Vemos cómo el nombre de cada departamento queda rotado según la rotación que definimos con el "rot" y acá podemos ver ya el diagrama de caja para cada uno de los departamentos. Con la gráfica anterior, podemos estudiar el comportamiento de la tarifa de la categoría uno por departamento, pero sería interesante poder ver también el de todas las demás tarifas e incluso comparar entre éstas. Para eso podemos crear una gráfica con subplots, donde cada uno será un boxplot con el comportamiento de cada tarifa por departamento. Primero, debemos filtrar el dataframe para obtener las columnas que nos interesan, en este caso el departamento y todas las tarifas de cada peaje. Y sobre este dataframe resultante, invocamos la función boxplot para indicar el título de cada subplot junto con las etiquetas de sus ejes, vamos a recorrer el access subplot, para pasar por cada subplot y ajustar la visualización. Eso es básicamente lo que está haciendo este recorrido que acá. Ejecutemos ahora. Esperamos que se muestre la imagen. Aquí podemos ver cómo se muestra cada uno de los subtplots. Entonces, nos va a quedar para cada departamento, los valores de las tarifas para categoría uno, dos, tres, y así hasta las siete. Notemos que quedaron también las etiquetas que decidimos poner como departamento para el eje x y para el eje y, las tarifas en pesos. Realicemos ahora algunas gráficas sobre los peajes ubicados en el Departamento de Cundinamarca. Aplicaremos, entonce, s el filtro que vemos en pantalla para obtener el data frame sobre el que crearemos las gráficas. Ahora comparemos tarifas entre sí, al tiempo sobre una misma gráfica. He realizado unas gráficas de dispersión. La primera para comparar la tarifa de categoría uno con la dos, asignando azul oscuro a los puntos y una etiqueta para saber la comparación que se está realizando, que dice uno a dos. Ahora incluyamos la comparación entre uno y tres sobre la misma gráfica, creando una nueva variable y con la misma función plot. Esta vez cambiamos el color a verde oscuro y la etiqueta dice de uno a tres e incluimos el parámetro adicional "ax" que marca que se debe mostrar los datos de la primera imagen sobre esta misma que estamos creando. Ejecutemos. Y vemos que, efectivamente, se muestran en una sola gráfica los dos set de puntos. Incluyamos una tercera serie. Será el mismo proceso, solo que esta vez poniendo a comparar contra la categoría cuatro, usando el color rojo, una nueva etiqueta y en "ax", incluyendo a la segunda gráfica. Ejecutemos. Y vemos que se muestran ahora los tres sets de puntos sobre el mismo gráfico de dispersión. Ahora veamos otra gráfica de dispersión para comparar tres columnas a la vez. En este caso, creamos un scatter plot normal, pero incluimos el parámetro "c" para que el color de cada punto varía según el valor para la tarifa tres. Ponemos también el parámetro "s" para ajustar el tamaño de cada punto, de modo que sean visibles. Ejecutemos. Y vemos cómo se ve ahora, cada punto en un tono distinto, dependiendo del valor de la tarifa para las categoría tres. Ahora comparemos cuatro columnas al tiempo con otro gráfico de dispersión. Usaremos la misma idea del anterior, pero esta vez el parámetro "s" lo cambiamos para que varíe el tamaño de cada punto según el valor de la tarifa de categoría cuatro, que dividimos en 100 para que no vayan a quedar valores muy grandes que crezcan tanto cada punto que resulte ilegible el gráfico. Ejecutemos. Y vemos como ahora, además de los dos ejes y el color de cada punto, el tamaño de cada uno nos representa el valor para la tarifa de la categoría cuatro. Es importante recordar que, para crear correctamente algunas de las gráficas que hemos visto, es necesario ejecutar juntas las instrucciones que crean la gráfica, es decir, ejecutarlas en bloque, bien sea desde la terminal o, si tenemos varias gráficas en un solo archivo, seleccionar las líneas que nos crean la gráfica que deseamos ver y luego presionar "F9" para correr solo ese bloque seleccionado.