five

kececilayout

收藏
DataCite Commons2025-07-16 更新2026-05-07 收录
下载链接:
https://workflowhub.eu/data_files/17?version=2
下载链接
链接失效反馈
官方服务:
资源简介:
# KececiLayout Kececi Layout (Keçeci Yerleşimi): A deterministic graph layout algorithm designed for visualizing linear or sequential structures with a characteristic "zig-zag" or "serpentine" pattern. Python implementation of the Keçeci layout algorithm for graph visualization. Description / Açıklama This algorithm arranges nodes sequentially along a primary axis and offsets them alternately along a secondary axis. It's particularly useful for path graphs, chains, or showing progression. Bu algoritma, düğümleri birincil eksen boyunca sıralı olarak yerleştirir ve ikincil eksen boyunca dönüşümlü olarak kaydırır. Yol grafları, zincirler veya ilerlemeyi göstermek için özellikle kullanışlıdır. English Description Keçeci Layout: A deterministic node placement algorithm used in graph visualization. In this layout, nodes are arranged sequentially along a defined primary axis. Each subsequent node is then alternately offset along a secondary, perpendicular axis, typically moving to one side of the primary axis and then the other. Often, the magnitude of this secondary offset increases as nodes progress along the primary axis, creating a characteristic "zig-zag" or "serpentine" pattern. Key Characteristics: Linear Focus: Particularly useful for visualizing linear or sequential structures, such as paths, chains, or ordered processes. Deterministic: Produces the exact same layout for the same graph and parameters every time. Overlap Reduction: Helps prevent node collisions by spreading nodes out away from the primary axis. Parametric: Can be customized using parameters such as the primary direction (e.g., top-down), the starting side for the secondary offset (e.g., start_right), and the spacing along both axes (primary_spacing, secondary_spacing). Türkçe Tanımlama Keçeci Yerleşimi (Keçeci Layout): Graf görselleştirmede kullanılan deterministik bir düğüm yerleştirme algoritmasıdır. Bu yöntemde düğümler, belirlenen birincil (ana) eksen boyunca sıralı olarak yerleştirilir. Her bir sonraki düğüm, ana eksenin bir sağına bir soluna (veya bir üstüne bir altına) olmak üzere, ikincil eksen doğrultusunda dönüşümlü olarak kaydırılır. Genellikle, ana eksende ilerledikçe ikincil eksendeki kaydırma miktarı artar ve bu da karakteristik bir "zıgzag" veya "yılanvari" desen oluşturur. Temel Özellikleri: Doğrusal Odak: Özellikle yollar (paths), zincirler veya sıralı süreçler gibi doğrusal veya ardışık yapıları görselleştirmek için kullanışlıdır. Deterministik: Aynı graf ve parametrelerle her zaman aynı sonucu üretir. Çakışmayı Azaltma: Düğümleri ana eksenden uzağa yayarak çakışmaları önlemeye yardımcı olur. Parametrik: Ana eksenin yönü (örn. top-down), ikincil kaydırmanın başlangıç yönü (örn. start_right) ve eksenler arası boşluklar (primary_spacing, secondary_spacing) gibi parametrelerle özelleştirilebilir. Installation / Kurulum conda install bilgi::kececilayout -y pip install kececilayout https://anaconda.org/bilgi/kececilayout https://pypi.org/project/KececiLayout/ https://github.com/WhiteSymmetry/kececilayout https://zenodo.org/records/15313947 https://zenodo.org/records/15314329 Usage / Kullanım The layout function generally accepts a graph object and returns positions. Example with NetworkX import networkx as nx import matplotlib.pyplot as plt import kececilayout as kl # Assuming the main function is imported like this import random #Create a graph G = nx.path_graph(10) #Calculate layout positions using the generic function #(Assuming kl.kececi_layout_v4 is the main/generic function) pos = kl.kececi_layout_v4(G, primary_spacing=1.0, secondary_spacing=0.5, primary_direction='top-down', secondary_start='right') #Draw the graph plt.figure(figsize=(6, 8)) nx.draw(G, pos=pos, with_labels=True, node_color='skyblue', node_size=500, font_size=10) plt.title("Keçeci Layout with NetworkX") plt.axis('equal') # Ensure aspect ratio is equal plt.show() import matplotlib.pyplot as plt import math import networkx as nx import kececilayout as kl import random try: import kececilayout as kl except ImportError: print("Error: 'kececi_layout.py' not found or could not be imported.") print("Please ensure the file containing kececi_layout_v4 is accessible.") exit() #--- General Layout Parameters --- LAYOUT_PARAMS = { 'primary_spacing': 1.0, 'secondary_spacing': 0.6, # Make the zigzag noticeable 'primary_direction': 'top-down', 'secondary_start': 'right' } N_NODES = 10 # Number of nodes in the example graph #=== NetworkX Example === try: import networkx as nx print("\n--- NetworkX Example ---") #Generate graph (Path graph) G_nx = nx.path_graph(N_NODES) print(f"NetworkX graph generated: {G_nx.number_of_nodes()} nodes, {G_nx.number_of_edges()} edges") #Calculate layout print("Calculating Keçeci Layout...") #Call the layout function from the imported module pos_nx = kl.kececi_layout_v4(G_nx, **LAYOUT_PARAMS) #print("NetworkX positions:", pos_nx) # Debug print if needed #Plot plt.figure(figsize=(6, 8)) # Suitable figure size for vertical layout nx.draw(G_nx, # NetworkX graph object pos=pos_nx, # Positions calculated by Kececi Layout with_labels=True, # Show node labels (indices) node_color='skyblue',# Node color node_size=700, # Node size font_size=10, # Label font size edge_color='gray') # Edge color plt.title(f"NetworkX ({N_NODES} Nodes) with Keçeci Layout") # Plot title plt.xlabel("X Coordinate") # X-axis label plt.ylabel("Y Coordinate") # Y-axis label plt.axis('equal') # Ensure equal aspect ratio for correct spacing perception #plt.grid(False) # Ensure grid is off plt.show() # Display the plot except ImportError: print("NetworkX is not installed. Skipping this example.") except Exception as e: print(f"An error occurred in the NetworkX example: {e}") import traceback traceback.print_exc() print("\n--- NetworkX Example Finished ---")
提供机构:
WorkflowHub
创建时间:
2025-07-16
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

面向社区/商业的数据集话题

二维码
科研交流群

面向高校/科研机构的开源数据集话题

数据驱动未来

携手共赢发展

商业合作