0

最初に基本的なグラフを設定し、次にノードとエッジを追加して、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)
4

1 に答える 1