最初に基本的なグラフを設定し、次にノードとエッジを追加して、DiagrammeR でグラフを作成しました。create_graph() 内の edge_attrs() でエッジの色属性を設定しました。
色属性なしで新しいエッジを追加すると、予想どおり、事前定義された色が使用されます。ただし、delete_edge() でエッジの 1 つを削除すると、すべてのエッジの一般的なエッジ属性の色が消えます。graph$edges_df には色情報が含まれていないため、グラフはデフォルトで黒になります。
add_node() を使用する場合、エッジの色を graph$edges_df に追加する方法はありますか?
私が考えた唯一の方法は、エッジなしでノードを追加してから、add_edge() を使用して個別にエッジを追加することです。
再現可能な例を次に示します。
library(DiagrammeR)
library(magrittr)
nodes <-
create_nodes(
nodes = "a",
label = "A",
type = "lower",
style = "filled",
shape = "circle",
color = "orange",
x = 5,
y = 4
)
graph_1 <-
create_graph(
nodes_df = nodes,
graph_attrs = c(
"layout = neato"
),
edge_attrs = c(
"relationship = requires",
"arrowhead = normal",
"color = 'lightgrey'"
)
)
render_graph(graph_1)
graph_1 %>%
add_node(
node = "b",
from = "a",
label = "B",
style = "filled",
shape = "circle",
color = "orange",
x = 5,
y = 3
) ->
graph_2
render_graph(graph_2)
new_edges <- create_edges(
from = "a",
to = "a"
)
graph_2 %>%
add_edges(
edges_df = new_edges
) ->
graph_3
render_graph(graph_3)
graph_3 %>%
delete_edge(
to = "a",
from = "a"
) ->
graph_4
render_graph(graph_4)