Como Crear Un Gráfico de Gantt Accediendo Por La API the Google

Danilo Galindo
Jun 17, 2020


Como sabemos existen diversas formas de  almacenar nuestros datos. Normalmente, podemos leer y extraer información de manera sencilla por medio de archivos txt.csv entre muchos otros. Sin embargo, también podemos extraer información de la nube de Google. En este post nos enfocaremos en extraer datos de la API de Google spreadsheet y graficar un diagrama de Gantt con estos datos.

Para esto, seguiremos de forma general los pasos que se encuentran a continuación.

  • Crear un spreadsheet de Google con datos de tareas y sus respectivos tiempos.
  • Acceder a https://console.developers.google.com/ y crear un nuevo proyecto.
  • Habilitar la API de Google drive.
  • Crear nuestras credenciales.
  • Habilitar la API de Google sheets.
  • Compartir acceso de nuestro Google sheet atreves de la API con las credenciales previamente creadas.
  • Crear nuestro jupyter notebook y que empiece la acción !!!

El primer paso como antes mencionado es crear nuestro spreadsheet llamado times con los siguientes campos. 

  • Task_id
  • start_time
  • end_time
  • date 


Luego accedemos a https://console.developers.google.com/  y creamos nuestro proyecto.



Le damos un nombre a nuestro proyecto y dejamos el campo ubicación como ninguna. Esto no afectará nuestro proyecto, después hacemos click en continuar.



En este paso, buscaremos la biblioteca de Google dando click en APIs y servicios.



Buscamos por Google drive API y le damos habilitar.



Damos click en crear credenciales. 



Luego, configuramos nuestras credenciales como sigue en la parte inferior. 



Damos click en la opción “Que credenciales necesito” y configuramos como sigue a continuación.



Seleccionamos  continuar y se nos generará un archivo .json. Este debe asegurarse, ya que lo utilizaremos más adelante.

Nuevamente buscamos en la librería de Google la API de Google sheets y le damos habilitar.



Abrimos nuestro .json file que fue descargado en pasos previos. De este, copiamos nuestro “client_email” para ser compartido con nuestro spreadsheet.


Para ello accedemos a nuestro spreadsheet y damos click en compartir para pegar nuestro email.



Es hora de crear nuestro Jupyter Notebook para comenzar a jugar con nuestro spreadsheet. 

Como requerimiento debemos instalar gspread y oauth2client con el comando pip como sigue a continuación.

!pip install  gspread oauth2client

Después, importamos las librerías previamente descargadas.



Creamos nuestro scope para ser usado en las credenciales.



Creamos nuestras credenciales con ServiceAccountCredentials y pasamos como argumento nuestro .json file con el scope.



Creamos nuestro cliente con gspread.


Abrimos nuestra hoja donde está contenida la información de nuestro spreadsheet llamado times


Podemos conseguir nuestra data con el comando get_all_records().


Imprimimos nuestra data.


Si queremos una forma amigable de imprimir nuestros datos solo importemos pprint.

from pprint import pprint


Podemos incluso extraer las filas como sigue a continuación.


Elaboremos nuestro diagrama de Gantt. 

Importamos pandas como de costumbre. 


Creamos nuestro DataFrame con la data proveniente del spreadsheet.

 

Si revisamos el tipo de datos contenido en el DataFrame, nos daremos cuenta que es de tipo string. Por lo cual necesitaremos pasar los campos date,end_time y start_time a tipo time.

El campo date será de tipo datetime y los campos start_time y end_time serán de tipo Timedelta como sigue a continuación. 


Imprimimos como quedo nuestro DataFrame.



Por otro lado, no es suficiente con tener start_time y end_time en tiempo. De alguna manera debemos sacar la duración y expresarla en número entero sea en horas,minutos o segundos. Para esto, sacaremos la duración de la diferencia entre start_time y end_time y la expresaremos en minutos al igual que el start_time estará en minutos.    
 



Para graficar nuestro diagrama de Gantt solo necesitaremos los campos Task_id,start_time[m] y duration[m].


La gráfica de Gantt será originada usando la función de matplotlib broken_barh que tomará como argumentos 3 partes que serán descritas a continuación.

  • Un tuple conformado por las variables start_time y duration.
  • Un tuple conformado por el mínimo valor de la axis y y/o altura o incremento.  
  • El color de cada tarea.

Esta función debe lucir como sigue en la parte inferior.

broken_barh((start_time,duration),(y_minimum,height),color)

Ya sabemos de forma general cómo se compone la función de Gantt. Ahora es nuestro turno de graficarla siguiendo los pasos que se encuentran en la parte inferior.

Importamos matplotlib.


Creamos nuestro diccionario de colores.


Creamos una figura para graficar nuestro diagrama de Gantt. Adicionalmente, iteramos a través de un for para conseguir los valores de los campos start_time[m] y duration[m] para cada task.




Finalmente, obtenemos nuestro diagrama de Gantt para cada tarea asignada. 

Esto es un claro ejemplo que tenemos la oportunidad de poder automatizar ciertas tareas haciendo uso de la API de Google sheet. Solo basta con alimentar el spreadsheet, conectarse a la API de Google sheet y hacer uso de nuestra imaginación. 


“Como Crear Un Gráfico de Gantt Accediendo Por La API the Google”
– Danilo Galindo twitter social icon Tweet

Compartir este artículo:

0 Comentarios

Crear un comentario
Ingresar para Comentar

Artículos Relacionados

Oct 16, 2021

6 Conceptos de Estadística Avanzada en Data Science

El artículo contiene algunos de los conceptos estadísticos avanzados más utilizados junto con su implementación en Python.En mis artículos anterior...

Nagesh Singh Chauhan
Por Nagesh Singh Chauhan
Oct 09, 2021

Las 10 Mejores Extensiones de Python para Visual Studio Code

En este nuevo post queremos hablar de las extensiones más útiles de Python para Visual Studio Code. Visual Studio Code es un entorno de desarrollo ...

Daniel Morales
Por Daniel Morales
Sep 25, 2021

10 Preguntas Altamente Probables en Una Entrevista de Data Science

La popularidad de la ciencia de los datos atrae a muchas personas de una amplia gama de profesiones para hacer un cambio de carrera con el objetivo...

Soner Yıldırım
Por Soner Yıldırım
Icon

Únete a nuestra comunidad privada en Slack

Manténgase al día participando de ésta gran comunidad de data scientists en latinoamérica. Hablamos sobre competiciones en data science, cómo estamos resolviendo los retos, modelos de machine learning aplicados a las competiciones, técnicas novedosas y mucho más!

 
Te enviaremos el link de invitación a tu email de forma inmediata.
arrow-up icon