簡體   English   中英

如何使用 pygraphviz 增加點圖中節點之間的間距?

[英]How can I increase spacing between nodes in dot graph with pygraphviz?

我在嘗試增加我正在制作的分層圖中節點之間的間距時遇到了麻煩。 我希望在此圖上放置標簽,因此節點之間的間距必須相當大,但我不確定 pygraphvis_layout 的“args”參數如何工作,或者我是否正確使用它。

似乎相同等級的節點之間的間距應該至少為 2 英寸,但這並沒有反映在實際圖像中。 據我測試,改變提供給 nodeep 的數字對間距沒有影響。

我已經查看了其他解決方案: pydot 沒有工作,似乎 output png 文件我無法打開,我已經在使用 NetworkX 來繪制其他相關內容。

(除了指定的導入之外,復制還需要 graphviz。)

import networkx as nx
import matplotlib.pyplot as plt
from networkx.drawing.nx_agraph import pygraphviz_layout

plt.figure(figsize=(10, 7))
graph = nx.DiGraph([(0, 1), (0, 2),
                    (1, 3), (1,4), (2,5), (2,6),
                    (3, 7), (3, 8), (4, 9), (4, 10), (5, 11), (5, 12), (6, 13), (6, 14)])
pos = pygraphviz_layout(graph, prog="dot", args='-Gnodesep=2')
nx.draw_networkx_nodes(
    graph, pos, nodelist=graph.nodes, node_size=1000, node_color="r", alpha=0.8
)
nx.draw_networkx_edges(graph, pos, edgelist=graph.edges, width=1, edge_color="k")
plt.axis("off")
plt.savefig("test.svg")
plt.show()

從片段生成的圖像

繪制圖形的空間受圖形大小的限制。 嘗試使用大小,例如:

pos = pygraphviz_layout(graph, prog="dot", args='-Gnodesep=2')
nx.draw_networkx_nodes(...)
nx.draw_networkx_edges(...)
plt.figure(figsize=(20,20))
plt.show()

一旦大小足夠大, Gnodesep參數應該可以工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM