私は自動的にエッジ交差の数を最小限にするためにダイア伝えることができますどのように...次のおもちゃの例のように、ダイアグラマでダイアグラムでエッジ交差の数を最小限に抑えるには、R?
library(DiagrammeR)
Dia <- function(edg, nodesd) {
nodes <- create_node_df( n=length(nodesd), label=nodesd,
width=0.3)
edges <- create_edge_df(from = edg$EveFrom, to = edg$EveTo,
rel = "leading_to")
graph <- create_graph( nodes_df = nodes, edges_df = edges)
render_graph(graph)
}
niv <- c("A","B","C","D","E","X","Y")
temp <- data.table(EveFrom=factor(c("A","A","A","A","B","C","D","E",
"X", "B"), levels=niv),
EveTo=factor(c("B","C","D","E","X","X","Y","Y","Y", "C"), levels=niv))
Dia(temp,niv)
をネットワークグラフをプロット?
この単純な例では、CとBの位置が交換された場合、結果にはエッジが交差しません。 より複雑な例では、すべての交差点を削除することはできませんが、少なくとも交差点を最小化することはできません。
visnetworkで、私は、ノード
を再配置することができます。しかし、それはあなたがベクタ形式としてエクスポートすることはできません。例えば、他の欠点を有しています。PD:これは(隠されたラベル付き)bergant溶液で出力されます。
が、私のvisnetwork結果を模倣することも可能ですか? (例えば、各辺にラベルを付けたり、辺の幅を変更する) – skan
ラベル:はい、 'create_edge_df'(文字列のベクトル)に' label'引数を追加します。 – bergant
幅: 'penwidth' = 3を使用してください。 – bergant