Haz que tus gráficos sean excelentes con UTF-8.

Make your graphics excellent with UTF-8.

Incorporar iconos personalizados en Plotly Express

Foto de Le Vu en Unsplash

Las principales bibliotecas de gráficos de Python hacen hermosos gráficos de forma predeterminada, pero están diseñados para el análisis exploratorio de datos, informes profesionales y artículos científicos. Pueden ser un poco aburridos para el consumo del público en general y otras personas no técnicas.

En este proyecto de Ciencia de Datos de éxito rápido, veremos una forma de animar tus gráficos utilizando iconos fácilmente disponibles que pueden tratarse como texto. Específicamente, usaremos la popular biblioteca Plotly Express para hacer un gráfico de barras del número máximo teórico de cuadrados que cada pieza de ajedrez puede controlar al mismo tiempo (asumiendo que la pieza está en el centro de un tablero vacío).

Para hacer esto una infografía más atractiva, decoraremos las barras con símbolos disponibles en la colección UTF-8 de caracteres.

Ejemplo de barras decoradas en un gráfico de barras (imagen del autor)

¿Qué es UTF-8?

Según Wikipedia, “UTF-8 es un estándar de codificación de caracteres de longitud variable utilizado para la comunicación electrónica. Definido por el Estándar Unicode, el nombre se deriva de Unicode (o Conjunto de caracteres codificados universal) Formato de Transformación – 8 bits. UTF-8 es la codificación dominante para la World Wide Web (y las tecnologías de Internet).”

Con UTF-8, cada carácter que desees utilizar, como el símbolo de pi o la letra “A”, se le asigna un código único. Además de los caracteres de texto familiares, UTF-8 incluye iconos de todo tipo de cosas, desde caras sonrientes hasta aviones a reacción y caracoles. Estos iconos pueden tratarse como texto al anotar gráficos Plotly Express.

Encontrar iconos UTF-8

Puedes buscar iconos UTF-8 en este sitio . En lugar de buscar cada pieza de ajedrez individual, busca “ajedrez”. Esto devolverá la página que se muestra a continuación, con una lista de iconos compatibles.

Resultados de la búsqueda del símbolo Unicode para “ajedrez” (imagen del autor)

Si haces clic en el icono del caballo blanco, obtendrás la pantalla a continuación.

Resultados de hacer clic en el icono del caballo blanco (imagen del autor)

Aquí está la parte divertida. Para usar este icono, simplemente resalta y copia la imagen grande. Luego puedes pegar esta imagen directamente en tu código de Python, como demostraré en breve. No es necesario ingresar el código UTF-8 real.

La biblioteca Plotly Express

Para hacer el gráfico, usaremos Plotly Express , una versión de nivel superior de la biblioteca de gráficos Plotly. Esta biblioteca abstrae gran parte de la tediosidad en la realización de gráficos y te permite producir fácilmente figuras atractivas con mucha funcionalidad incorporada.

Plotly Express requiere Plotly como dependencia. Puedes instalarlo con conda o pip.

Aquí está la instalación de conda: conda install -c plotly plotly_express

Y aquí está la versión de pip: pip install plotly

El Código

El siguiente código se ejecutó en JupyterLab. Se presenta y describe por celda.

Importación de bibliotecas

Plotly Express está diseñado para funcionar bien con datos en formato de pandas DataFrame, por lo que querremos importar tanto Plotly Express como pandas. Pandas se puede instalar con conda install pandas o con pip install pandas.

import pandas as pdimport plotly.express as px

Ingresando los datos

Ingresaremos los datos en dos diccionarios que usan los nombres de las piezas como claves. Uno contendrá el número de cuadros controlados por pieza y el otro contendrá los símbolos UTF-8. Los fusionaremos en el nombre de la pieza, así que estos deben ser iguales en ambos diccionarios.

Observe cómo puede pegar directamente el icono desde la página de búsqueda de UTF-8 referenciada anteriormente. ¿No es genial? Solo necesita encerrarlo entre comillas simples o dobles ya que se trata como una cadena.

squares = {'King': 8,            'Queen': 27,            'Rook': 14,           'Bishop': 13,           'Knight': 8,            'Pawn': 2}symbols = {'King': '♔',            'Queen': '♕',            'Rook': '♖',           'Bishop': '♗',           'Knight': '♘',            'Pawn': '♙'}df_squares = pd.DataFrame(squares.items(),                           columns=['Pieza', 'Max Cuadros'])df_squares = df_squares.sort_values(by='Max Cuadros')df_symbols = pd.DataFrame(symbols.items(),                           columns=['Pieza', 'Símbolo'])df_merged = df_squares.merge(df_symbols)df_merged.head(6)
El DataFrame fusionado (imagen por el autor)

Creando el gráfico

Plotly Express facilita la generación de gráficos estándar como gráficos de barras, gráficos de dispersión, mapas de calor, etc. Aquí, usaremos el método bar() para hacer un gráfico de barras. Una vez que se le pasa el nombre del DataFrame al método, solo necesita proporcionar los nombres de columna para acceder a los datos en los argumentos posteriores. Esto hace que el código sea muy legible.

El argumento text captura el símbolo UTF-8, que se colocará automáticamente cerca de la parte superior de cada barra. Para controlar el tamaño del símbolo, use el argumento textfont_size del método update_traces(). El argumento marker_color se refiere al color de la barra, no al color del símbolo.

fig = px.bar(df_merged,              x='Pieza',              y='Max Cuadros',             height=550,             text='Símbolo')fig.update_traces(textfont_size=70, marker_color='black')fig.show()  # opcional
El número máximo teórico de cuadros que cada pieza puede controlar al mismo tiempo (imagen por el autor)

Como puede ver, los iconos UTF-8 se pueden tratar como texto normal al hacer gráficos en Plotly Express. Esto significa que puede usarlos como anotaciones de texto y colocarlos donde desee. En el ejemplo que sigue, colocamos una cara sonriente roja sobre la barra del Caballo para demostrar el proceso.

# Agregar anotación:fig.add_annotation(dict(font=dict(color='red',                                  size=50),                                  x=0.39,                                  y=0.45,                                  showarrow=False,                                  text="☺",                                  textangle=0,                                  xanchor='left',                                  xref="paper",                                  yref="paper"))fig.show()  # opcional
Gráfico de barras con cara sonriente roja colocada sobre la barra del Caballo (imagen por el autor)

Resultados

Los iconos UTF-8 te permiten añadir un poco de capricho a tus gráficos, dándoles un aspecto de “infografía”. Aunque no es necesario ni siquiera deseado para el trabajo analítico o los artículos científicos, decorar los gráficos de esta manera puede ser beneficioso al preparar boletines informativos, tutoriales, informes anuales y otros documentos dirigidos a un público no técnico.

¡Gracias!

Gracias por leer y por favor sígueme para más proyectos de Ciencia de Datos de éxito rápido en el futuro.

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Noticias de Inteligencia Artificial

¡No más trampas! ¡Sapia.ai detecta respuestas generadas por inteligencia artificial en tiempo real!

En un emocionante avance, Sapia.ai ha presentado una nueva función que puede identificar y marcar respuestas creadas ...

Inteligencia Artificial

EU AI Act ¿Un paso prometedor o una apuesta arriesgada para el futuro de la IA?

La Ley de la UE sobre IA es la primera ley de regulación internacional sobre IA. Su objetivo es garantizar el desarro...

Inteligencia Artificial

El avance de la inteligencia artificial de IBM traducir COBOL a Java ahora es fácil

El mundo de la tecnología está en constante evolución, y IBM lidera la carga con una innovadora solución de IA que po...

Inteligencia Artificial

Apache SeaTunnel, Milvus y OpenAI mejoran la precisión y eficiencia de la búsqueda de similitud de títulos de libros'.

Utilizando Apache SeaTunnel, Milvus y OpenAI, podemos lograr búsquedas de similitud de títulos de libros más precisas...

Inteligencia Artificial

Búsqueda de empleo en Ciencia de Datos 5 libros que guiaron mi camino hacia el empleo

¡Sé que ha sido difícil! En medio de estos tiempos desafiantes, es innegable que estamos enfrentando dificultades sig...