William-Aguilar / Quetzalli

Esta APP permitirá el entrenamiento de una IA 🤖 para la generación de una alerta que le ayude al usuario a determinar un deterioro cognitivo que alcance márgenes no deseados. 🧠
0 stars 0 forks source link

Generación de gráficas #24

Closed WillSanchez8 closed 8 months ago

WillSanchez8 commented 8 months ago

Con base en el siguiente código:

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
import matplotlib.cm

# Genera 7 fechas a partir del '2023-12-14'
dates = pd.date_range(start='2023-12-14', periods=7)

# Tus datos
scoreTotal = [50, 25, 50, 75, 100, 75, 100]
totalTime = ['00:10', '00:20', '01:50', '00:50', '00:50', '01:00', '04:10']

# Añade '00:' al principio de cada tiempo para convertirlo al formato 'hh:mm:ss'
totalTime = ['00:' + time if len(time) == 5 else time for time in totalTime]

# Convierte las fechas y los tiempos a formato datetime
dates = pd.to_datetime(dates)
totalTime = pd.to_timedelta(totalTime)

# Crea un DataFrame con tus datos
data = pd.DataFrame({'dates': dates, 'scoreTotal': scoreTotal, 'totalTime': totalTime})

# Invierte el mapa de colores 'hot'
cmap = matplotlib.cm.get_cmap('viridis')
reversed_cmap = cmap.reversed()

# Crea el gráfico de dispersión con el mapa de colores invertido
plt.scatter(data['dates'], data['totalTime'].dt.total_seconds()/60, c=data['scoreTotal'], cmap=reversed_cmap)

# Añade scoreTotal como notas
for i, score in enumerate(data['scoreTotal']):
    plt.annotate(str(score), (data['dates'][i].to_pydatetime(), data['totalTime'].dt.total_seconds().iloc[i]/60))

# Traza una línea punteada para unir los puntos
plt.plot(data['dates'], data['totalTime'].dt.total_seconds()/60, 'r--')

plt.colorbar(label='Score Total')
plt.xlabel('Date')
plt.ylabel('Total Time (minutes)')
plt.show()

Genere un endpoint sobre flask que permita cargar datos desde firebase para generar la gráfica y como respuesta se retorne la imagen de la gráfica generada

WillSanchez8 commented 8 months ago

Image