gráficos graphs

Crear gráficos en ChatGPT en segundos

July 10, 2023

Los gráficos son una herramienta esencial en el análisis de datos y la visualización de información. Permiten representar de manera visual la relación entre diferentes variables y facilitan la comprensión de patrones, tendencias y comparaciones. Además, los gráficos pueden transmitir información compleja de manera clara y concisa, lo que los convierte en una valiosa herramienta de comunicación.

En el contexto de aprender Python, crear gráficos es una excelente manera de aplicar y consolidar los conocimientos adquiridos. Al utilizar librerías como Matplotlib, Seaborn o Plotly, podemos generar gráficos de barras, gráficos de líneas, gráficos de dispersión y muchos otros tipos de visualizaciones. Estas librerías ofrecen una amplia gama de opciones de personalización y configuración, lo que nos permite adaptar los gráficos a nuestras necesidades específicas.

Gráficos en ChaGPT

La creación de gráficos en ChatGPT nos brinda varias ventajas para aprender Python. En primer lugar, nos permite practicar la sintaxis y las funciones necesarias para generar gráficos en el lenguaje Python. A medida que exploramos diferentes tipos de gráficos y ajustamos sus parámetros, estamos aplicando los conceptos aprendidos en programación, como la manipulación de listas, la indexación, los bucles y las estructuras de control.

Además, al crear gráficos en ChatGPT, estamos trabajando con datos reales o ficticios, lo que nos permite desarrollar habilidades de manipulación y análisis de datos. Podemos aplicar técnicas de limpieza y transformación de datos antes de visualizarlos, lo que nos ayuda a comprender mejor cómo se manejan los datos en el contexto de la visualización.

Por otro lado, los gráficos generados en ChatGPT nos proporcionan un feedback visual inmediato sobre los resultados de nuestro código. Podemos observar los gráficos en tiempo real y verificar si se representan correctamente los datos y si cumplen con nuestros objetivos de visualización. Esto nos ayuda a identificar posibles errores y a realizar ajustes en nuestro código para mejorar la presentación visual de los datos.

Creando datos que nos proporciona ChatGPT para los gráficos

Se va a analizar la Distribución del gasto turístico realizado según país de destino. El dataset no los proporciona el propio ChatGPT. No he revisado si son datos correcto o no.

Se utiliza el siguiente código:

import matplotlib.pyplot as plt
import numpy as np

# Datos del gasto turístico de los países
years = [2019, 2020, 2021, 2022]
countries = ['Spain', 'France', 'Italy', 'Germany', 'UK', 'Greece']
spain = [92.278, 19.723, 22.961, 24.520]
france = [55.674, 17.312, 24.751, 28.157]
italy = [45.150, 17.720, 23.532, 27.613]
germany = [38.861, 16.361, 21.181, 24.553]
uk = [41.861, 8.542, 14.852, 16.963]
greece = [18.198, 4.370, 7.712, 9.628]

# Configuración del gráfico
plt.figure(figsize=(10, 6))  # Tamaño del gráfico
bar_width = 0.1
opacity = 0.8
index = np.arange(len(years))

# Colores para cada país
colors = ['blue', 'orange', 'green', 'red', 'purple', 'brown']

# Dibujar las barras para cada país y año
for i, country in enumerate(countries):
    plt.bar(index + i * bar_width, eval(country.lower()), bar_width, alpha=opacity, color=colors[i], label=country)
    # Mostrar el valor encima de cada columna
    for j, value in enumerate(eval(country.lower())):
        plt.text(j + i * bar_width, value + 0.5, str(value), ha='center', va='bottom', fontsize=5)

plt.xlabel('Años')
plt.ylabel('Gasto Turístico (miles de millones de euros)')
plt.title('Gasto Turístico de países europeos (2019-2022)')
plt.xticks(index + bar_width * (len(countries) / 2 - 0.5), years)
plt.legend()

# Mostrar el gráfico
plt.show()

# Guardar el gráfico en formato PNG
plt.savefig('nombre_del_archivo.png', dpi=300, bbox_inches='tight')

Se obtiene el siguiente gráfico:

gráficos graphs

Comprobando el porcentaje de cambio de año a año

Ahora le vamos a pedir a ChatGPT que cree una tabla que muestre el porcentaje de cambio de año a año para cada país y luego un gráfico similar al anterior que muestre ese cambio porcentual. Se utiliza este código:

import matplotlib.pyplot as plt
import numpy as np

# Datos del gasto turístico de los países
years = [2019, 2020, 2021, 2022]
countries = ['Spain', 'France', 'Italy', 'Germany', 'UK', 'Greece']
spain = [92.278, 19.723, 22.961, 24.520]
france = [55.674, 17.312, 24.751, 28.157]
italy = [45.150, 17.720, 23.532, 27.613]
germany = [38.861, 16.361, 21.181, 24.553]
uk = [41.861, 8.542, 14.852, 16.963]
greece = [18.198, 4.370, 7.712, 9.628]

# Calcular el porcentaje de cambio de año a año para cada país
spain_pct_change = [(spain[i+1] - spain[i]) / spain[i] * 100 for i in range(len(spain)-1)]
france_pct_change = [(france[i+1] - france[i]) / france[i] * 100 for i in range(len(france)-1)]
italy_pct_change = [(italy[i+1] - italy[i]) / italy[i] * 100 for i in range(len(italy)-1)]
germany_pct_change = [(germany[i+1] - germany[i]) / germany[i] * 100 for i in range(len(germany)-1)]
uk_pct_change = [(uk[i+1] - uk[i]) / uk[i] * 100 for i in range(len(uk)-1)]
greece_pct_change = [(greece[i+1] - greece[i]) / greece[i] * 100 for i in range(len(greece)-1)]

# Crear una tabla que muestra el porcentaje de cambio de año a año
table_data = np.vstack((spain_pct_change, france_pct_change, italy_pct_change, germany_pct_change, uk_pct_change, greece_pct_change))

# Configuración del formato de la tabla
row_labels = ['Spain', 'France', 'Italy', 'Germany', 'UK', 'Greece']
col_labels = ['2019-2020', '2020-2021', '2021-2022']
table_title = 'Porcentaje de Cambio de Año a Año del Gasto Turístico'
cell_text = [['{:.2f}%'.format(value) for value in row] for row in table_data]
colors = plt.cm.get_cmap('Set2', len(countries))(np.arange(len(countries)))

# Configuración del gráfico de barras
plt.figure(figsize=(10, 6))  # Tamaño del gráfico
bar_width = 0.1  # Modifica el valor para ajustar el tamaño de las barras
opacity = 0.8
index = np.arange(len(years)-1)

# Dibujar las barras para cada país y año
for i, country in enumerate(countries):
    values = table_data[i]
    pos_values = [value if value >= 0 else 0 for value in values]
    neg_values = [value if value < 0 else 0 for value in values]
    plt.bar(index + i * bar_width, pos_values, bar_width, alpha=opacity, color=colors[i], label=country)
    plt.bar(index + i * bar_width, neg_values, bar_width, alpha=opacity, color=colors[i])
    # Mostrar el valor en cada barra
    for j, value in enumerate(values):
        if value >= 0:
            plt.text(index[j] + i * bar_width, value + 0.5, '{:.2f}%'.format(value), ha='center', va='bottom', fontsize=8)
        else:
            plt.text(index[j] + i * bar_width, value - 0.5, '{:.2f}%'.format(value), ha='center', va='top', fontsize=8)

plt.xlabel('Años')
plt.ylabel('Cambio Porcentual del Gasto Turístico')
plt.title('Cambio Porcentual de los Gastos Turísticos de países europeos (2019-2022)')
plt.xticks(index + bar_width * (len(countries) / 2 - 0.5), col_labels)
plt.legend()

# Guardar el gráfico en formato PNG
plt.savefig('porcentual.png', dpi=300, bbox_inches='tight')

# Mostrar el gráfico
plt.show()

Los datos vienen de la siguiente tabla:

Country2019-20202020-20212021-2022
Spain-78,626516,417386,789774
France-68,904742,9701913,76106
Italy-60,75332,799117,34234
Germany-57,898729,460315,91993
UK-79,594473,8702914,21357
Greece-75,986476,4759724,8444

Y dan lugar a la siguiente gráfica:

gráficos graphs

Resumen

En resumen, la creación de gráficos en ChatGPT es una excelente manera de aprender Python y consolidar los conceptos de programación y análisis de datos. Nos permite aplicar la sintaxis y las funciones de Python en el contexto de la visualización de datos, desarrollar habilidades de manipulación y análisis de datos, y obtener un feedback visual inmediato sobre nuestros resultados. Además, al generar gráficos, podemos comunicar y transmitir información de manera efectiva, lo que es esencial en el análisis de datos y la toma de decisiones informadas.

En muchas ocasiones el resultado que obtenemos no es correcto. La manera más adecuada de resolverlo es decirle exactamente a ChatGPT que está mal y él solo va a ir depurando el código poco a poco. El resultado obtenido en este artículo ha sido tras varios intentos, haciendo las preguntas adecuadas para conseguir lo que se busca.

Avelino Dominguez

??‍? Biologist ??‍? Teacher ??‍? Technologist ? Statistician ? #SEO #SocialNetwork #Web #Data ♟Chess ? Galician

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

machine unlearning
Previous Story

Google announces the first “Machine Unlearning” challenge

graphs
Next Story

Create charts in ChatGPT in seconds

Top

Don't Miss

números primo primo

Verificar si un número es primo o no utilizando Python

Este artículo explica cómo saber si…
prime numbers

Check if a number is prime or not using Python

This article explains how to tell…