Tento návod vás provede tím, jak vytvořit vývojový diagram v Pythonu. Vysvětluje algoritmus krok za krokem a obsahuje ukázkový kód pro vytvoření generátoru vývojových diagramů v Pythonu. Navíc si můžete přizpůsobit tvorbu diagramu změnou typů tvarů, spojení, schématu a dalších parametrů podle svých potřeb.
Kroky k vytvoření vývojového diagramu v Pythonu
- Nakonfigurujte systémové prostředí stažením Aspose.Diagram pro tvorbu vývojových diagramů
- Definujte schéma požadovaného vývojového diagramu
- Vytvořte instanci třídy Diagram a vložte různé tvary z hlavní šablony
- Určete cílové rozvržení a vykreslete výstupní diagram pomocí metody save
Tyto kroky popisují proces vytváření generátoru vývojových diagramů v Pythonu. Nejprve definujete schéma, abyste určili požadované parametry. Poté vložíte různé tvary pomocí hlavní šablony a nakonec exportujete vytvořený diagram.
Kód pro vytvoření generátoru vývojových diagramů v Pythonu
import aspose.diagram | |
from aspose.diagram import * | |
path = "C://" | |
import aspose.diagram | |
from aspose.diagram import * | |
def createFlowChart(): | |
# schema for the diagram to be created | |
diagram_object = Input( | |
input_rectangles=[ | |
InputRectangle("A", "Manager"), | |
InputRectangle("B", "Team Leader"), | |
InputRectangle("C", "Team Member"), | |
InputRectangle("D", "Team Member"), | |
InputRectangle("E", "Team Member") | |
], | |
input_connectors=[ | |
InputConnector("A", "B"), | |
InputConnector("B", "C"), | |
InputConnector("B", "D"), | |
InputConnector("B", "E") | |
] | |
) | |
diagram = Diagram(path + "BasicShapes.vss") | |
page = diagram.pages[0] | |
shape_names = {} | |
# Adding shapes and connectors from the schema | |
for rectangle in diagram_object.InputRectangles: | |
shape = Shape() | |
shape_id = diagram.add_shape(shape, "Rectangle", 0) | |
shape_names[rectangle.Name] = shape_id | |
shape = page.shapes.get_shape(shape_id) | |
shape.text.value.add(Txt(rectangle.Text)) | |
for connector in diagram_object.InputConnectors: | |
connector_id = diagram.add_shape(Shape(), "Dynamic connector", 0) | |
page.connect_shapes_via_connector( | |
shape_names[connector.OriginShapeName], | |
aspose.diagram.manipulation.ConnectionPointPlace.RIGHT, | |
shape_names[connector.DestinationShapeName], | |
aspose.diagram.manipulation.ConnectionPointPlace.LEFT, | |
connector_id | |
) | |
layout_options = aspose.diagram.autolayout.LayoutOptions() | |
layout_options.layout_style = aspose.diagram.autolayout.LayoutStyle.FLOW_CHART | |
layout_options.direction = aspose.diagram.autolayout.LayoutDirection.LEFT_TO_RIGHT | |
layout_options.space_shapes = 5.0 | |
layout_options.enlarge_page = True | |
diagram.layout(layout_options) | |
page.page_sheet.print_props.print_page_orientation.value = PrintPageOrientationValue.LANDSCAPE | |
save_options = aspose.diagram.saving.DiagramSaveOptions() | |
save_options.save_format = SaveFileFormat.VSDX | |
save_options.auto_fit_page_to_drawing_content = True | |
diagram.save(path + "flowchart_output.vsdx", save_options) | |
class Input: | |
def __init__(self, input_rectangles=None, input_connectors=None): | |
self.InputRectangles = input_rectangles if input_rectangles else [] | |
self.InputConnectors = input_connectors if input_connectors else [] | |
class InputRectangle: | |
def __init__(self, name, text): | |
self.Name = name | |
self.Text = text | |
class InputConnector: | |
def __init__(self, origin_shape_name, destination_shape_name): | |
self.OriginShapeName = origin_shape_name | |
self.DestinationShapeName = destination_shape_name | |
createFlowChart() |
Výše uvedený kód je rychlá ukázka toho, jak nakreslit vývojový diagram v Pythonu. Hlavně pracuje s třídou Diagram pro načítání různých tvarů, nastavení rozvržení a vykreslení vývojového diagramu. Navíc si můžete upravit rozvržení pro různé směry, například zleva doprava, zprava doleva, shora dolů atd., aby odpovídalo vašim potřebám.
Tento článek obsahuje informace o nástroji pro vývojové diagramy v Pythonu. Pokud však chcete vytvořit organizační diagram (ORG chart), přečtěte si článek Vytvoření organizačního diagramu v Pythonu.