Botón para abrir el Menú Botón para cerrar el Menú
Logo da empresa Alura
Iniciar Sesión Nuestros Planes
Formaciones Conoce a Luri
  • Programación _
  • Front End _
  • Data Science _
  • DevOps _
  • Innovación y Gestión _
Artículos de Tecnología > Data Science

Data Visualization: conociendo las bibliotecas de Python

Marcus Almeida
Marcus Almeida
13/10/2024

Compartir

Mira este artículo:
  1. ¿Qué es la Visualización de Datos (DataViz)?
  2. Terminologías
  3. Matplotlib
  4. Seaborn
  5. Plotly
  6. ¿Qué sigue después?
  7. Conclusión

capa

La Ciencia de Datos es un conjunto de técnicas que trabaja en analizar e interpretar información útil y valiosa detrás de grandes volúmenes de datos que se generan todos los días en los más diversos sectores. En este contexto, surge también la visualización de datos, que desempeña un papel importante cuando necesitamos identificar problemas, anomalías y tendencias en el proceso de análisis de datos. Por lo tanto, es una herramienta esencial tanto para profesionales de datos como para el público en general que consume esta información.

Para resolver estas tareas, surgen bibliotecas con el objetivo de unir la visualización de datos con el poder de Python y sus bibliotecas para Data Science, como NumPy y Pandas, que ya actúan en toda la cadena de trabajo de extracción, limpieza y transformación de datos.

En este artículo, vamos a conocer un poco más sobre la visualización de datos y algunas bibliotecas muy utilizadas.

¿Qué es la Visualización de Datos (DataViz)?

La visualización de datos, también conocida por términos como data visualization o DataViz, es el conjunto de técnicas para representar información y datos de forma visual de manera comprensible, con el fin de transmitir los resultados del análisis de datos. Estas técnicas se utilizan para transformar grandes conjuntos de datos y registros en gráficos, tablas y diagramas que pueden ser procesados más fácilmente por cualquier persona.

Por ejemplo, utilizando un conjunto de datos (dataset) como el Iris, que posee 150 registros con la longitud de sépalos y pétalos de algunas especies de flores Iris (a saber, virginica, versicolor y setosa), podemos presentar la información contenida en este conjunto de diversas maneras. En este caso, podemos exponer la tabla de datos directamente:

sepal length (cm)petal length (cm)class
05.11.4setosa
14.91.4setosa
24.71.3setosa
34.61.5setosa
45.01.4setosa
...........
1456.75.2virginica
1466.35.0virginica
1476.55.2virginica
1486.25.4virginica
1495.95.1virginica

O a través del uso de gráficos, resumiendo la información de este conjunto de datos de manera visual. El ejemplo abajo es un gráfico de dispersión (scatter) que muestra los mismos registros de la tabla completa anterior:

alt text: Gráfico de dispersión con el título

De esta manera, conseguimos generar insights de forma más rápida y con un lenguaje sencillo. Para analizar el gráfico de arriba, no se necesita mucho conocimiento técnico para comprender las características individuales de cada especie de Iris, los tamaños mínimos y máximos, o qué especie tiene pétalo o sépalo más grande, por ejemplo. Esto facilita el proceso de observar y comunicar resultados en el análisis de datos.

En la Ciencia de Datos, la visualización tiene el papel fundamental de conectar los sectores de cada área de negocio. Los proyectos son ejecutados por analistas y científicos de datos y pasan por una fase en la cual se presentan los resultados de manera estructurada.

En este punto, se crea un storytelling (una manera de presentar información al público objetivo) y, para dar soporte a este proceso creativo y analítico, los datos se transforman en resultados mediante indicadores o KPIs.

Dejo este AluraMás sobre los fundamentos del Storytelling con la instructora Layla Schelli.

Terminologías

El inglés es el idioma utilizado para estructurar los códigos en Python y sus bibliotecas. Por lo tanto, es importante conocer algunos de los términos utilizados en tareas de visualización de datos, tales como:

Término [en inglés]TraducciónObservaciones
ChartGráficoGeneralmente se acompaña del tipo de gráfico.
Ej: Pie Chart (Pastel), Bar Chart (Barras), Line Chart (Líneas), Bubble Chart (Burbujas), etc.
PlotTrazadoProducción de una imagen mediante dibujos y líneas. Acción de construir el gráfico.
Axis / AxesEjeEje de los gráficos.
Idea análoga a Matemáticas, en la cual tenemos X e Y para el caso 2D y X, Y, Z para el caso 3D.
LabelEtiquetaSon las etiquetas que nombran y acompañan cada eje. Generalmente aparecen acompañadas del eje respectivo.
Ej: x_label, y_label, etc.
GridRejilla/MallaEs la estructura de fondo de un gráfico. Líneas horizontales y verticales espaciadas que sirven de referencia para las unidades de los ejes.
LegendLeyendaCaja de texto descriptivo, que contiene información sobre los elementos del gráfico. Generalmente proporciona información sobre el significado de determinado color o trazo y/o qué variables están siendo trazadas.

Estos términos también pueden verse a través de la imagen a continuación que muestra la estructura “anatómica” de un gráfico, es decir, cómo se llaman los elementos. Incluso en bibliotecas diferentes, aún podemos observar varias similitudes.

alt text: Estructura con elementos de un gráfico construido en Matplotlib. Hay dos curvas trazadas en un plano cartesiano, con ejes X e Y, etiquetados como “x Axis” e “y Axis”, respectivamente. Las curvas están posicionadas en el centro de la imagen: una curva de color azul, en la parte superior, etiquetada como Line (plt.plot); y otra naranja, en la parte inferior. El título del gráfico es “Anatomía de una figura” y está etiquetado como Title (plt.title). El título del eje X es “x Axis label”, con límites de 0 a 4 y está etiquetado como xlabel (plt.xlabel). El título del eje Y es “y Axis label”, con límites de 0 a 4 y está etiquetado como ylabel (plt.ylabel). Entre las dos curvas, hay varios cuadrados de color púrpura etiquetados como Markers (plt.scatter). En la esquina superior derecha del gráfico tenemos una leyenda con dos elementos: una línea azul con la etiqueta “Blue signal” y otra línea naranja con la etiqueta “Orange signal”. La leyenda está etiquetada como legend (plt.legend). El gráfico está contenido en un rectángulo. En la esquina superior derecha de ese rectángulo tenemos la etiqueta Figure (plt.figure).

Ahora que ya conocemos los principales términos y componentes de los gráficos y figuras, vamos a pasar a las bibliotecas.

Matplotlib

alt text: Logotipo de la biblioteca Matplotlib en color azul y con un ícono en lugar de la letra O. Este ícono es un círculo que contiene la representación de un gráfico con siete triángulos concéntricos en colores diferentes.

Matplotlib es una de las bibliotecas más populares para la visualización de datos en Python. Creada en 2003 por el científico de la computación John D. Hunter, el proyecto Matplotlib fue desarrollado con el objetivo de promover un entorno de creación de gráficos (plots) similares al del software MATLAB.

El proyecto es de código abierto y cuenta con una variedad de gráficos, como: líneas, dispersión, histogramas, barras, y muchos más. También permite un alto nivel de personalización, desde el trabajo con los colores de cada elemento, fuentes, escalas, entre otros. Para los gráficos en imágenes, es posible trabajar con varios tipos de salida, desde los más comunes como PNG, PDF, JPEG, SVG y EPS, siendo este último un formato bastante utilizado para artículos académicos y técnicos.

Galería de gráficos de Matplotlib

La documentación de Matplotlib ofrece dos enlaces interesantes: Plot Types y Examples.

  • Plot Types: página dedicada a mostrar los tipos de visualizaciones posibles con Matplotlib. Algunos de ellos son: plot, scatter, bar, stem, step y fill_between.

alt text: Captura de pantalla de un recorte de la página Plot Types de la documentación de Matplotlib. El título principal es “Basic” (Básico), y el subtítulo es “Basic plot types, usually y versus x” (Tipos básicos de gráficos, generalmente y versus x). Tenemos 6 cuadros con ejemplos de diferentes tipos de gráficos. Estos cuadros están dispuestos en 2 filas y 3 columnas, siendo en la primera fila, de izquierda a derecha: “plot(x, y)”, “scatter(x, y)”, “bar(x, height)”. En la segunda fila tenemos, de izquierda a derecha: “stem(x, y)”, “step(x, y)” y “fill_between(x, y1, y2)”.

  • Examples: página con diversos ejemplos y combinación de funciones de creación y personalización diferentes de Matplotlib. Algunos de los ejemplos mostrados son: Bar color demo (Demostración de color de barras), Bar Label Demo (Demostración de etiquetas en barras), Stacked bar chart (Gráfico de barras apiladas), Grouped bar chart with labels (Gráfico de barras agrupadas con etiquetas), Horizontal bar chart (Gráfico de barras horizontales) y Broken Barh (Gráfico de barras rotas).

alt text: Captura de pantalla de un recorte de la página Examples de la documentación de Matplotlib. El título principal es “Line, bars and markers” (Líneas, barras y marcadores). Tenemos 6 cuadros con ejemplos de gráficos de barras dispuestos en 2 filas y 3 columnas. Los cuadros en la primera fila, de izquierda a derecha, se llaman “Bar color demo” (Demostración de color de barras), “Bar Label Demo” (Demostración de etiquetas en barras) y “Stacked bar chart” (Gráfico de barras apiladas). Los cuadros en la segunda fila, de izquierda a derecha, se llaman “Grouped bar chart with labels” (Gráfico de barras agrupadas con etiquetas), “Horizontal bar chart” (Gráfico de barras horizontales) y “Broken Barh” (Gráfico de barras rotas).

Además de la gran variedad de gráficos 2D estáticos, Matplotlib también permite la creación de animaciones en formato GIF, gráficos en 3D y la combinación de varios gráficos en uno solo (subplots). Todo esto con el uso de módulos específicos dentro de la biblioteca.

Seaborn

alt text: Logotipo de la biblioteca Seaborn en diferentes tonalidades de azul. A la izquierda tenemos el ícono con algunos tipos de gráficos dentro de un círculo. A la derecha del ícono está la palabra “seaborn”.

En 2012, bajo la dirección del científico de datos estadounidense Michael Waskom, surge Seaborn, una biblioteca de código abierto basada en Matplotlib. Propone una interfaz de alto nivel para trabajar con gráficos más atractivos y con información estadística, con la idea principal de que, según Waskom, “Seaborn convierte cosas difíciles en cosas muy fáciles de hacer”.

La biblioteca se utiliza generalmente en conjunto con otras bibliotecas de análisis de datos, con las que tiene una excelente integración entre sus objetos, como NumPy y Pandas, en los que es posible indicar de manera sencilla las variables que se están utilizando y generar rápidamente resultados.

Galería de gráficos de Seaborn

Seaborn también cuenta con una galería de imágenes de los gráficos realizados utilizando la biblioteca.

alt text: Captura de pantalla de un recorte de la página Examples de la documentación de Seaborn con el título “Example gallery” (Galería de ejemplos). Tenemos 21 cuadros con diversos ejemplos de gráficos, dispuestos en 3 filas y 7 columnas..

Una de las características más importantes de Seaborn es la facilidad para tratar información estadística del conjunto de datos durante el proceso de trazado de los gráficos. En el ejemplo a continuación, construimos un gráfico de histograma y, simplemente agregando el parámetro kde=True, podemos crear una nueva línea en el gráfico que realiza una estimación de una función estadística para ese mismo conjunto de datos.

import seaborn as sns
sns.histplot(data=df, x='sepal length (cm)', kde=True)
plt.show()

alt text: Gráfico de histograma en color azul con fondo gris. En él, tenemos los ejes X y Y. El eje X se llama “sepal length (cm)” y la escala va de 4.5 a 8.0 (espaciados de 0.5 en 0.5). El eje Y se llama “Count” con una escala de 0 a 25 (espaciados de 5 en 5). Hay 9 barras de diferentes tamaños, con los siguientes valores aproximados para las alturas de las barras: 9, 23, 20, 26, 26, 14, 16, 5, 6.

Plotly

alt text: Logotipo de la biblioteca Plotly en colores azul marino, y diferentes tonos de rosa y azul. A la izquierda tenemos el ícono del logotipo de Plotly y la palabra “plotly” escrita a la derecha del ícono.

Plotly es una biblioteca de código abierto para la visualización de datos de manera interactiva en Python y que tiene soporte en otros lenguajes de programación. Creada en 2012 por los científicos de datos Alex Johnson, Jack Parmer y Chris Parmer, Plotly llegó al escenario con el objetivo de llenar el vacío en la visualización de datos interactiva.

La principal característica de Plotly es la capacidad de crear gráficos que pueden ser manipulados en tiempo real por los usuarios, permitiendo que la exploración de los datos sea dinámica e inmersiva. En la interfaz del gráfico, es posible usar acciones como disminuir y aumentar el zoom, cambiar la región de observación (pan), aplicar filtros de datos y también animaciones.

Plotly funciona muy bien con varias plataformas usadas en Ciencia de Datos y desarrollo de software, tales como: Jupyter Notebook, Dash (framework de dashboards web), aplicaciones web, Streamlit y ofrece la posibilidad de exportar a HTML para páginas web.

En Plotly, el gráfico de dispersión, mostrado al inicio del artículo, se vuelve interactivo y permite explorar varias acciones.

alt text: GIF de un gráfico de dispersión utilizando la biblioteca Plotly. Se muestran las funcionalidades de las herramientas de Pan y Zoom, ubicadas en la esquina superior izquierda. También se exhiben ventanas emergentes cuando el mouse pasa sobre uno de los puntos del gráfico, en las que aparece una ventana con información de colores y los respectivos valores para los ejes X e Y.

Galería de gráficos de Plotly

La galería de gráficos de Plotly está disponible en la página Plotly Open Source Graphing Library for Python y cuenta con diversos ejemplos de gráficos básicos, estadísticos, mapas y varios ejemplos aplicados.

alt text: Captura de pantalla con un recorte de los ejemplos de la página “Gallery” de la documentación de Matplotlib. Se muestran 15 gráficos en total, divididos en tres secciones con 5 gráficos cada una. La primera sección se llama “Fundamentals” (Fundamentos), la segunda “Basic Charts” (Gráficos Básicos) y la tercera “Statistical Charts” (Gráficos Estadísticos).

¿Qué sigue después?

El trabajo con visualización de datos y la creación de gráficos y figuras no termina aquí. También podemos incorporar estos elementos en informes estáticos (documentos, PDFs, etc.) o en informes dinámicos, como los informes y dashboards creados en Power BI. Además, podemos utilizar estos elementos en páginas web, complementando tecnologías como Flask, Django y las tecnologías para webapps orientadas a datos ya mencionadas, como Dash y Streamlit.

Conclusión

¿Te gustó? Aquí en Alura Latam tenemos varios contenidos orientados a Ciencia de Datos y Visualización de Datos. Te invitamos a conocer la Formación Python para Data Science, una trayectoria de estudios completa que comienza en Python, pasa por las principales bibliotecas de Ciencia de Datos (como NumPy y Pandas) y trabaja con las bibliotecas de visualización de datos. ¡Recuerda que no necesitas tener conocimientos previos en programación para empezar!

¡Sumérgete en la Tecnología! 🤿🌊

Créditos

Contenido: Marcus Almeida

Producción técnica: Rodrigo Dias

Producción didáctica: Morgana Gomes

Diseñador gráfico: Alysson Manso

Este artículo fue traducido y adaptado por Ingrid Silva

Marcus Almeida Estudiante de Ingeniería Eléctrica en el Instituto Federal do Maranhão. Ha formado parte del Scuba Team de la Escuela de Datos en Alura, trabajando con contenidos orientados a Data Science, Machine Learning, Python y SQL. Le encanta hablar sobre tecnología, el universo geek, videojuegos y también aprender cosas nuevas.

Artículo Anterior
Actualización automática de tu informe en Power BI Service
Siguiente Artículo
Ampliando el análisis con Describe

Ver otros artículos sobre Data Science

Navegación

  • Planes
  • Instructores
  • Blog
  • Política de privacidad
  • Términos de uso
  • Sobre nosotros
  • Preguntas frecuentes

¡CONTÁCTANOS!

  • ¡Quiero entrar en contacto!

Blog

  • Programación
  • Data Science
  • Front End
  • Innovación y Gestión
  • DevOps

AOVS Sistemas de Informática S.A CNPJ 05.555.382/0001-33

SÍGUENOS EN NUESTRAS REDES SOCIALES

YouTube Facebook Instagram Linkedin Whatsapp Spotify

NOVEDADES Y LANZAMIENTOS

Aliados

  • Programa de aceleração Scale-Up Endeavor
  • En Alura somos unas de las Scale-Ups seleccionadas por Endeavor, programa de aceleración de las empresas que más crecen en el país.
  • Growth Academy 2021 do Google For Startups
  • Fuimos unas de las 7 startups seleccionadas por Google For Startups en participar del programa Growth Academy en 2021
Alura

Powered by

Caelum

AOVS Sistemas de Informática S.A CNPJ 05.555.382/0001-33

SÍGUENOS EN NUESTRAS REDES SOCIALES

YouTube Facebook Instagram Linkedin Whatsapp Spotify

Cursos

Cursos de Programación
Lógica de Programación | Java
Cursos de Front End
HTML y CSS | JavaScript | React
Cursos de Data Science
Data Science | Machine Learning | Excel | Base de Datos | Data Visualization | Estadística
Cursos de DevOps
Docker | Linux
Cursos de Innovación y Gestión
Transformación Ágil | Marketing Analytics

Alura

  • Educação em Tecnologia

    • logo fiap FIAP
    • logo casa do codigo Casa do Código
    • logo pm3 PM3 - Cursos de Produto
  • Mais Alura

    • logo alura start START BY Alura
    • logo alura lingua Alura Língua
    • logo alura para empresas Alura Para Empresas
    • logo alura latam Alura LATAM
  • Comunidade

    • logo tech guide Tech Guide
    • logo 7 days of code 7 days of code
    • logo Hipsters ponto Jobs Hipsters ponto Jobs
  • Podcasts

    • logo Hipster Network Hipster Network
    • logo Hipsters ponto Tech Hipsters ponto Tech
    • logo Dev sem fronteiras Dev sem Fronteiras
    • logo Like a Boss Like a Boss
    • logo IA Sob Controle IA Sob Controle
    • logo Mesa de Produto Mesa de Produto
    • logo Decode Decode
    • logo FIAPCast FIAPCast