Bienvenidos al primer video de esta lección, en el cual vamos a mostrar los principales conceptos relacionados con la creación de gráficas con Pandas. Las visualizaciones de Pandas están basadas sobre las visualizaciones de Matplotlib y por esto no hay muchos conceptos nuevos que revisar. Solo tenemos que preocuparnos por conocer algunos detalles de la sintaxis que hacen que sea mucho más fácil construir visualizaciones a partir de "dataframes". En este video, introduciremos las principales ideas utilizando como ejemplos histogramas y diagramas de barras. Al terminar esta lección, ustedes serán capaces de construir gráficas muy útiles y atractivas usando Pandas sin tener que pasar por Matplotlib. Empecemos estudiando los conceptos básicos de las gráficas en Pandas. Primero, cada gráfica tiene un tipo que indica cómo se va a visualizar la información. Además, será súper importante saber cuál es la fuente de datos, es decir, el "dataframe" o la serie de donde se van a sacar los datos que se van a visualizar. Como se darán cuenta cuando estén haciendo los ejercicios, el problema no es construir las visualizaciones. El problema es estructurar los datos para que sea muy sencillo construir las visualizaciones. A continuación, tenemos una serie de elementos que decoran las gráficas. En la parte de arriba, tenemos el título de la gráfica. En la parte abajo, tenemos la etiqueta del eje X, aunque en realidad podríamos haber configurado para que apareciera en cualquier otra parte de la figura. El eje X también tiene un rango que depende de los datos que se estén visualizando y que en este caso va de cero a 30. Más adelante, aprenderemos a especificar estos rangos nosotros mismos. Para el eje Y, tenemos lo mismo, una etiqueta y una serie de valores en un rango. Finalmente, cada gráfica tiene un esquema de fuentes y un esquema de colores que utiliza. Dependiendo lo que queramos, podemos utilizar el esquema de colores por defecto, podemos utilizar una hoja de estilo o podemos configurar cada gráfica por separado. Ahora sí, empecemos a construir gráficas usando Pandas y empecemos con un histograma, es decir, una gráfica que nos permite ver cuántas veces aparece cada valor o cada rango de valores dentro de un conjunto de datos. Para construir el histograma que vemos en la imagen, construimos una serie llamada "pagado", en la cual aparecen los valores que estaban en la columna "valor pagado" del "dataframe" "numéricos". Sobre esta nueva serie, invocamos la función "plot" y le pasamos el parámetro "kind" con una cadena de caracteres. Este parámetro, "kind", sirve para indicar el tipo de gráfica que queremos construir. En este caso, como estamos usando la cadena "hist", significa que queremos construir un histograma. Finalmente, tenemos el parámetro "figsize" que tiene asociado una tupla. Esta tupla sirve para indicar el ancho y el alto de la figura, que en este caso, será diez por cuatro. Con toda esta información Pandas ya pueden empezar a construir la figura. En primer lugar, se da cuenta de que "pagado" es una columna con valores numéricos. Luego se da cuenta que los datos están todos en el rango cero a 30, así que los separa en diez grupos. El primero con los valores entre cero y dos, el segundo con los valores entre tres y cinco, el tercero con los valores entre seis y ocho y así sucesivamente. En el siguiente paso cuenta cuántos elementos hay en cada grupo y se da cuenta que el grupo que más elementos tiene tiene casi 1.700. Con esta información, Pandas empieza a preparar la gráfica. En el eje X, decide que el rango va a ir de cero a 30. En el eje Y, decide que el rango va a ir de cero a 1.800 y después empieza a dibujar las columnas que corresponden a cada uno de los grupos que encontró. El mismo proceso ocurriría si en lugar de utilizar la función "pagado punto plot", hubiéramos utilizado la función "pagado punto plot, punto hist". Esto se debe a que Pandas ofrece para cada tipo de gráficas dos formas de construirla: una utilizando la función "plot" con el parámetro "kind" y otra utilizando una función con el nombre del tipo de gráfica. Empecemos ahora a ajustar un poco la gráfica para que no utilice solamente los valores por defecto. En primer lugar, tenemos el parámetro "xlim", que nos permite indicar el rango para el eje X. En este caso, estamos indicando que el rango que queremos representar va de menos uno hasta 30. El menos uno lo estamos utilizando únicamente para correr toda la gráfica hacia la derecha. El segundo parámetro interesante es el parámetro "bins", que nos sirve para indicar en cuántos grupos queremos separar los datos. En esta nueva iteración, volvimos a ajustar el parámetro "xlim" y además agregamos el parámetro "ylim" que nos permite especificar el rango para el eje Y. En este caso, queremos que vaya de cero a 70. La función "plot" también puede recibir un parámetro llamado "title", que nos sirve para especificar el título que va a tener la gráfica. Al igual que en Matplotlib, en Pandas también podemos especificar el color de cada uno de los elementos de una gráfica. Sin embargo, muchas veces es mucho más fácil utilizar una hoja de estilos predefinida de Matplotlib. En el ejemplo, estamos mostrando la instrucción que se debe utilizar para cargar una de las hojas de estilo predefinidas. Veamos ahora el mecanismo que tenemos disponible para poder acceder a los elementos puntuales que hacen parte de una figura. Para esto, lo que necesitamos hacer es guardar dentro de una variable el resultado de la invocación a la función "plot". En este caso, la variable la hemos llamado "ax" y representa exactamente lo mismo que en los ejercicios de Matplotlib, en los que teníamos una variable con un nombre similar. Por eso, sobre esta variable, podemos invocar funciones como "set xlabel", "set ylabel" o "get figure". Las primeras sirven para configurar los textos de las etiquetas, mientras que la última sirve para obtener un objeto de tipo "figure" que después podemos utilizar para ciertas cosas, como por ejemplo, salvar la figura entera. Antes de continuar, resolvamos una pregunta. Pasemos ahora a estudiar un nuevo tipo de diagrama. Los diagramas de barras en los cuales podemos tener valores numéricos asociados a valores categóricos. Por ejemplo, en la imagen que estamos viendo, tenemos la cantidad de contratos por cada sector. Para construir esta figura, lo primero que tuvimos que hacer fue construir una serie con los valores que necesitábamos. Para lograr esto, extrajimos la columna "sector" del "dataframe" "muestra" y sobre eso invocamos la función "value counts". El resultado fue una serie donde las etiquetas son los nombres de los sectores y los valores son la cantidad de veces que aparece cada sector, es decir, la cantidad de contratos que hay en ese sector. Sobre esta nueva serie, invocamos la función "plot", pero esta vez utilizamos la cadena "bar" para el parámetro "kind". Con eso indicamos a Pandas que queríamos construir un diagrama de barras y no un histograma. Los otros parámetros nuevos de la función "plot" son "fontsize", que nos permite indicar el tamaño que queremos usar para los textos, "x label", que nos permite indicar la etiqueta para el eje X, y "y label" que nos permite indicar la etiqueta para el eje Y. El resultado de esto es la figura que vemos en la parte de arriba de la pantalla. Resolvamos la siguiente pregunta para revisar lo que estamos aprendiendo. Finalmente, veamos lo que pasa si agregamos el parámetro "logy" igual a "true" a la invocación de la función "plot". El resultado es que el eje Y ahora ya no es lineal, sino logarítmico, y eso cambia el tamaño de todas las barras. Para terminar este vídeo, hagamos un recuento de lo que aprendimos en él. En primer lugar, las visualizaciones en Pandas están basadas en las visualizaciones de Matplotlib. En general, Pandas ofrecen menos funcionalidades para ajustar y personalizar las gráficas, pero siempre se puede acceder a los componentes que están por debajo y utilizar Matplotlib para configurar cosas de forma especial. Vimos, también, que hay dos formas de invocar la construcción de gráficas. La primera es con la función "plot" de las series y los "dataframes", pero en ese caso se debe utilizar el parámetro "kind" para indicar el tipo de gráfica. La segunda forma es con una función que cambia según el tipo de gráfica. Por ejemplo, para un histograma la función se llama "plot punto hist", para un diagrama de barras se llama "plot punto bar" y para un diagrama de caja se llama simplemente "box plot". En la mayoría de los casos, las invocaciones son equivalentes entre los dos métodos, pero hay algunas excepciones en las que esto no es cierto. Dentro de los ejemplos que estudiamos aparecieron algunos de los parámetros que normalmente pueden usarse con cualquier tipo de gráfica: "figsize" para indicar el tamaño de la figura, "fontsize", "title", "xlim", "ylim", "logx", "logy", etcétera. Finalmente, vimos que el resultado de invocar la función "plot" es un "AxesSubplot", el cual es la versión Pandas del elemento "acces" de Matplotlib. Aunque se llamen diferente, su rol es el mismo: permitir acceder a los detalles de la representación de una gráfica. En los siguientes videos, veremos algunos ejemplos de los tipos de gráficas más populares en Pandas. Dentro de estos tipos, no estarán los diagramas de líneas por dos motivos. En primer lugar, porque en la sección sobre Matplotlib le dedicamos muchísimo tiempo este tipo de diagramas. En segundo lugar, porque los datos de contratación pública que estamos utilizando no se prestan para hacer diagramas de línea que tengan sentido.