I updated my diagrammer
to version 0.9.0 and started rendering different diagram from the same data. My data frame now looks like this:
df <- data.frame(col1 = c( "Cat", "Dog", "Bird"),
col2 = c( "Feline", "Canis", "Avis"),
stringsAsFactors=FALSE)
The rest of code looks like this:
uniquenodes <- unique(c(df$col1, df$col2))
library(DiagrammeR)
nodes <- create_node_df(n=length(uniquenodes), nodes = seq(uniquenodes), type="number", label=uniquenodes)
edges <- create_edge_df(from=match(df$col1, uniquenodes), to=match(df$col2, uniquenodes), rel="related")
g <- create_graph(nodes_df=nodes, edges_df=edges)
render_graph(g)
When code is used I get this diagram:
When it should look like this:
Create graph with attr_theme = NULL
:
g <- create_graph(nodes_df=nodes, edges_df=edges, attr_theme = NULL)
In current version, DiagrammeR sets the global attribute layout
to neato.
You can check this with:
g <- create_graph(nodes_df=nodes, edges_df=edges)
get_global_graph_attrs(g)
# attr value attr_type
# 1 layout neato graph
# 2 outputorder edgesfirst graph
# 3 fontname Helvetica node
# 4 fontsize 10 node
# 5 shape circle node
# 6 fixedsize true node
# 7 width 0.5 node
# 8 style filled node
# 9 fillcolor aliceblue node
# 10 color gray70 node
# 11 fontcolor gray50 node
# 12 len 1.5 edge
# 13 color gray40 edge
# 14 arrowsize 0.5 edge
You can also set these attributes with set_global_graph_attrs
after creating the graph object.