Hola, bienvenidos a este nuevo video en el que vamos a hablar de algunas librerías adicionales que también existen en el mundo Python. Ya hemos hablado hasta el momento bastante de Matplotlib, de Pandas y de algunas de las otras librerías que hacen parte de SciPy. En este video vamos a mencionar algunas librerías que no hacen parte de este ecosistema, pero que también sería muy interesante conocer. Las tres librerías de las que vamos a hablar, son Plotly, Bokeh y Seaborn. La idea, por supuesto, no es que se vuelvan expertos en el uso de Esto librerías, pero sí que tengan una buena idea de qué ventajas traería su uso por encima de Matplotlib. Empecemos hablando de Seaborn. Seaborn podríamos considerarlo una alternativa a Matplotlib, pero en realidad está construido sobre Matplotlib. Seaborn, como vemos en las imágenes, es una librería que nos permite construir varios tipos de diagramas y visualizaciones. Utiliza Matplotlib por debajo, pero es mucho más atractivo visualmente. El objetivo principal de Seaborn es permitirnos construir gráficas con bastante más facilidad que si estuviéramos usando Matplotlib directamente, pero utilizando todos los conceptos de Matplotlib que ya estudiamos en videos anteriores. Seaborn es muy popular en el mundo Python y su amplia difusión probablemente se deba a que ofrece una cantidad de gráficas que no necesariamente están incluidas en otras librerías. Las siguientes librerías de las que hablaremos están principalmente dirigidas a la creación de gráficas para utilizar en la web y para poder explicarlas, necesitamos hablar antes un poco de la arquitectura en la cual están basadas. Empecemos considerando que una de las características fundamentales que tienen que tener una gráfica que se utilice en la web es que tiene que ser interactiva, es decir, tiene que permitirle al usuario interactuar con las gráficas, navegar por los datos, hacer operaciones de acercamiento, filtrado, etcétera. Esto quiere decir que la estrategia tradicional en la cual nosotros tendríamos un programa Python que consultaría los datos y generaría una imagen para desplegar en el navegador, no nos sirve porque difícilmente va a lograr ser lo suficientemente interactivo. Lo que proponen las librerías que vamos a ver es que escribamos programas Python, que consulten los datos, los procesen y generen gráficas en formato SVG, que estén acompañadas de programas JavaScript, que sean capaces de modificarlas de acuerdo a los requerimientos del usuario. De esta manera, lo que va a ver el usuario en su navegador va a ser la imagen SVG, y va a poder interactuar con ella a través de programas JavaScript que se van a ejecutar cuando él haga click en ciertos iconos o en ciertos elementos de las gráficas. Aunque esta solución puede parecer complicada, en realidad es tremendamente efectiva y, con seguridad, usted ha interactuado muchas veces con sitios web que utilizan esta misma estrategia. La primera de las librerías que utilizan la estrategia que acabamos de ver es Plotly. Todas las imágenes que vemos en esta figura fueron construidas utilizando Plotly. Las imágenes de la izquierda y del centro corresponden a gráficas que fueron agregadas a un sitio web construido con Python. Aunque no lo podemos ver acá, estas gráficas son completamente interactivas, es decir, los usuarios de este sitio web pueden interactuar con estas gráficas para lograr concentrarse y buscar la información que realmente necesitan. Desde el punto de vista de los desarrolladores, es tremendamente conveniente que las gráficas se tengan que construir usando Python. Es decir, no fue necesario aprender a utilizar una librería en JavaScript para poder integrar estas gráficas a nuestro sitio web. A la derecha tenemos otro ejemplo de uso de Plotly, esta vez extraído del sitio web oficial de ellos. En este caso no se trata de gráficas independientes, sino de lo que ellos llaman un "dashboard" o un tablero de control. Como se puede ver en la imagen, tenemos varias gráficas integradas dentro de la misma página y tenemos una serie de controles que nos permiten cambiar la información que se está viendo en cada una de estas gráficas. Todo esto se construyó utilizando Dash, una herramienta bastante más grande que incluye a Plotly como uno de sus componentes y que tiene como objetivo principal la construcción con facilidad de tableros de control. Finalmente, acá tenemos algunos ejemplos de Bokeh, no vamos a entrar en muchos detalles, porque la arquitectura y la forma de utilizar esta librería es muy similar a la de Plotly. La única diferencia importante son el tipo de gráficas que son soportadas en cada una de estas herramientas. Para terminar esta parte, quisiéramos hacerle algunas recomendaciones generales sobre el uso de librerías. En primer lugar, debe seleccionar la librería adecuada. Si intenta utilizar una librería para una tarea para la cual no fue diseñada, es muy posible que tenga que hacer unos grandes esfuerzos y al final los resultados no sean los mejores. Asegúrese entonces de saber bien para qué sirve una librería antes de empezar a utilizarla. En segundo lugar, esfuércese por entender los conceptos fundamentales detrás del diseño de la librería. Para esto, le recomendamos leer la documentación introductoria, poniendo atención a cuáles son esos conceptos fundamentales alrededor de los cuales se explica todo el resto de la librería. También les recomendamos seguir siempre los tutoriales básicos y consultar los ejemplos oficiales que estén disponibles. Estas actividades deberían servirle para superar la curva inicial de aprendizaje, que suele ser la parte más difícil para empezar a utilizar una librería. Al final de esta etapa, usted ya debería tener un ambiente de desarrollo instalado y configurado en el cual pueda construir y poner a funcionar programas básicos utilizando la librería. El tercer paso es empezar a usar la librería. Deje atrás los ejemplos, deje atrás los ejercicios que hayan hecho otros y esfuércese por construir programas que resuelvan las necesidades que usted tenga. Obviamente, empiece por programas pequeños, pero esfuércese en utilizar la librería para lo que usted la necesita. Finalmente, recuerde siempre que hay muchos lugares en los cuales usted puede buscar ayuda. La documentación oficial, foros, sitios web especializados, como por ejemplo Stack Overflow y similares, etcétera. Además, si la librería que usted está utilizando es de código abierto, posiblemente usted podrá consultar el código fuente o podrá consultar también a la comunidad de desarrolladores. Esperamos que este pequeño tour de unas pocas librerías, así como todos los videos anteriores sobre las librerías que hacen parte de SciPy, hayan sido de utilidad para que usted se dé una muy buena idea de las posibilidades casi infinitas que ofrecen todas las librerías disponibles en Python. Todos los días aparecen nuevas versiones de librerías existentes y todos los días aparecen librerías nuevas publicados en repositorios públicos, como por ejemplo el Python Package Index, Conda o incluso en repositorios de código abierto como Github. Finalmente, recuerde que un lenguaje de programación no se termina de aprender nunca. Un lenguaje de programación es mucho más que la sintaxis, es todo el ecosistema de librerías, de desarrolladores, de libros y de ejemplos los que realmente forman el lenguaje de programación. Y todo eso está siempre en permanente cambio. Le deseamos muy buena suerte programando en Python o en cualquier otra tecnología que decida aprender más adelante.