Requisitos previos: Introducción a Matplotlib
En este artículo, discutiremos cómo trazar un diagrama de Gantt en Python usando Matplotlib.
Un diagrama de Gantt es una representación gráfica de un cronograma de proyecto o cronograma de tareas (en el sistema operativo). Es un tipo de gráfico de barras que muestra las fechas de inicio y finalización de varios elementos de un proyecto que incluyen recursos o fecha límite. El primer diagrama de Gantt fue ideado a mediados de la década de 1890 por Karol Adamiecki, un ingeniero polaco que dirigía una acería en el sur de Polonia y se había interesado en las ideas y técnicas de gestión. Unos 15 años después de Adamiecki, Henry Gantt, un ingeniero estadounidense y consultor de gestión de proyectos, ideó su propia versión del gráfico, que se hizo famoso como «Gráficos de Gantt».
Algunos usos de los diagramas de Gantt:
- Programación de proyectos.
- Programación de tareas en procesadores
A continuación se muestra un diagrama de Gantt de muestra para la programación de tareas:
Usaremos los tipos de gráfico broken_barh disponibles en matplotlib para dibujar diagramas de Gantt.
A continuación se muestra el código para generar el diagrama de Gantt anterior:
Python3
# Importing the matplotlib.pyplot import matplotlib.pyplot as plt # Declaring a figure "gnt" fig, gnt = plt.subplots() # Setting Y-axis limits gnt.set_ylim(0, 50) # Setting X-axis limits gnt.set_xlim(0, 160) # Setting labels for x-axis and y-axis gnt.set_xlabel('seconds since start') gnt.set_ylabel('Processor') # Setting ticks on y-axis gnt.set_yticks([15, 25, 35]) # Labelling tickes of y-axis gnt.set_yticklabels(['1', '2', '3']) # Setting graph attribute gnt.grid(True) # Declaring a bar in schedule gnt.broken_barh([(40, 50)], (30, 9), facecolors =('tab:orange')) # Declaring multiple bars in at same level and same width gnt.broken_barh([(110, 10), (150, 10)], (10, 9), facecolors ='tab:blue') gnt.broken_barh([(10, 50), (100, 20), (130, 10)], (20, 9), facecolors =('tab:red')) plt.savefig("gantt1.png")
Entendamos las diferentes piezas de códigos uno por uno:
fig, gnt = plt.subplots()
- Aquí, declaramos una cifra «gnt» para trazar el gráfico.
gnt.set_ylim(0, 50) gnt.set_xlim(0, 160)
- Aquí, declaramos los límites del eje X y el eje Y del gráfico. De forma predeterminada, el límite inferior del eje X y el eje Y es 0 y los límites superiores para ambos ejes son 5 unidades más que el valor más alto del eje X y el valor del eje Y.
gnt.set_xlabel('seconds since start') gnt.set_ylabel('Processor')
- Aquí, agregamos etiquetas a los ejes. Por defecto, no hay etiquetas.
gnt.set_yticks([15, 25, 35]) gnt.set_yticklabels(['1', '2', '3'])
- Aquí, agregamos marcas en el eje Y. También podemos etiquetarlos. Por defecto, los ejes se dividen uniformemente en los límites.
gnt.grid(True)
- Aquí, establecemos grid() en True para mostrar las cuadrículas. Por defecto, es Falso.
gnt.broken_barh([(40, 50)], (30, 9), facecolors=('tab:orange'))
- Aquí, agregamos una barra en el gráfico. En este ejemplo, esta barra representa la operación que se lleva a cabo durante un tiempo de 40 a (40+50) = 90 segundos.
Los argumentos básicos:
gnt.broken_barh([(start_time, duration)], (lower_yaxis, height), facecolors=('tab:colours'))
- Por defecto, el color se establece en azul.
Podemos declarar varias barras al mismo tiempo:
gnt.broken_barh([(10, 50), (100, 20), (130, 10)], (20, 9), facecolors=('tab:red'))
- También podemos agregar color de borde configurando el atributo «color de borde» a cualquier color.
plt.savefig("gantt1.png")
- Guardamos la figura formada en el archivo png.
Referencia: Ejemplo de Broken Barh Documentación de Matplotlib
Publicación traducida automáticamente
Artículo escrito por AyushShukla8 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA