Crear un Organigrama en Python

Este tema explica cómo crear un organigrama en Python. Incluye la configuración del sistema, un proceso paso a paso y un ejemplo de código ejecutable para desarrollar un generador de organigramas en Python. Además, puedes personalizar el organigrama y exportar el diagrama en formato VSDX o VSD según tus necesidades.

Pasos para Crear un Organigrama en Python

  1. Configura Aspose.Diagram en tu sistema para crear un organigrama
  2. Inicia una instancia de la clase Diagram para cargar las formas maestras desde una plantilla de muestra
  3. Agrega las formas necesarias e inserta conexiones entre los diferentes nodos
  4. Configura varias propiedades del organigrama usando la clase LayoutOptions y genera el diagrama final

Estos pasos describen el flujo de trabajo para desarrollar un generador de organigramas en Python. Primero, configura el sistema y carga las formas maestras desde un archivo de plantilla. Luego, inserta las formas y sus respectivas conexiones antes de generar el diagrama final.

Código para Crear un Generador de Organigramas en Python

import aspose.diagram
from aspose.diagram import *
path = "C://"
# Load masters from any existing diagram, stencil or template
visioStencil = path + "BasicShapes.vss"
rectangleMaster = "Rectangle"
connectorMaster = "Dynamic connector"
pageNumber = 0
width = 1.0
height = 1.0
pinX = 4.25
pinY = 9.5
# Define values to construct the hierarchy
listPos = ["0", "0:0", "0:1", "0:2", "0:3", "0:4", "0:5", "0:6", "0:0:0", "0:0:1", "0:3:0", "0:3:1", "0:3:2", "0:6:0", "0:6:1"]
# Define a dictionary to map the string name to long shape id
shapeIdMap = {}
# Create a new diagram
diagram = Diagram(visioStencil)
diagram.pages[pageNumber].page_sheet.page_props.page_width.value = 11.0
for orgnode in listPos:
# Add a new rectangle shape
rectangleId = diagram.add_shape(pinX, pinY, width, height, rectangleMaster, pageNumber)
pinX += 1
pinY += 1
# Set the new shape's properties
shape = diagram.pages[pageNumber].shapes.get_shape(rectangleId)
shape.text.value.add(Txt(orgnode))
shape.name = orgnode
shapeIdMap[orgnode] = rectangleId
# Create connections between nodes
for orgName in listPos:
lastColon = orgName.rfind(':')
if lastColon > 0:
parentName = orgName[:lastColon]
shapeId = shapeIdMap[orgName]
parentId = shapeIdMap[parentName]
connector1 = Shape()
connecter1Id = diagram.add_shape(connector1, connectorMaster, pageNumber)
diagram.pages[pageNumber].connect_shapes_via_connector(parentId, manipulation.ConnectionPointPlace.RIGHT,
shapeId, manipulation.ConnectionPointPlace.LEFT, connecter1Id)
# Auto layout CompactTree chart
compactTreeOptions = autolayout.LayoutOptions()
compactTreeOptions.layout_style = autolayout.LayoutStyle.COMPACT_TREE
compactTreeOptions.direction = autolayout.LayoutDirection.DOWN_THEN_RIGHT
compactTreeOptions.enlarge_page = False
diagram.pages[pageNumber].layout(compactTreeOptions)
# Save diagram
diagram.save("ORGchart_out.vsdx", SaveFileFormat.VSDX)

Este fragmento de código muestra cómo crear un constructor de organigramas en Python. Sin embargo, puedes personalizarlo ajustando la cantidad u orden de las formas, la dirección de los conectores, la posición, etc. Asimismo, puedes modificar las formas de los nodos y las conexiones ajustando el ID de la forma principal y otras propiedades para adaptarlas a tus necesidades.

Esta guía rápida ha explicado cómo crear un generador de organigramas en Python. Si te interesa crear diagramas de Visio desde cero, consulta el artículo sobre Crear un Diagrama de Visio en Python.

 Español