このチュートリアルでは、Pythonでフローチャートを作成する方法を説明します。手順ごとのアルゴリズムと、Pythonでフローチャートメーカーを作成するためのサンプルコードを紹介します。さらに、図形の種類、接続、スキーマなどをカスタマイズして、要件に応じたフローチャートを作成できます。
Pythonでフローチャートを作成する手順
- Aspose.Diagram をダウンロードして、フローチャートを作成するためのシステム環境を設定する。
- 必要なフローチャートのスキーマを定義する。
- Diagram クラスのインスタンスを作成し、マスターステンシルからさまざまな図形を挿入する。
- ターゲットレイアウトを指定し、save メソッドを使用してフローチャートを出力する。
これらの手順は、Pythonでフローチャートジェネレーターを作成するためのワークフローを示しています。最初に必要なスキーマを定義し、次にマスターステンシルを使用して図形を挿入し、最後に生成されたフローチャートをエクスポートします。
Pythonでフローチャートジェネレーターを作成するコード
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() |
上記のサンプルコードは、Pythonでフローチャートを描くための簡単なデモです。主にDiagramクラスを使用してさまざまな図形を読み込み、フローチャートのレイアウトを設定し、最終的なフローチャートをレンダリングします。さらに、左右方向、上下方向など、さまざまなレイアウトに変更して、デザインを調整できます。
この記事では、Pythonでフローチャートビルダーを作成する方法を紹介しました。ただし、組織図(ORGチャート)を作成したい場合は、PythonでORGチャートを作成する 記事をご覧ください。