library(igraph) library(DiagrammeR) library(DiagrammeRsvg) library(rsvg) cat("Attached packages:\n") print(sub("package:", "", search()[grep("^package:", search())])) # --- edges dataframe (your real one) --- edges <- data.frame( from = c("A","A","B","C"), to = c("B","C","D","E"), stringsAsFactors = FALSE ) # --- build igraph --- g <- graph_from_data_frame(edges, directed = TRUE) # --- relabel vertices to numeric IDs (DiagrammeR-friendly), keep original as label --- V(g)$label <- V(g)$name V(g)$name <- as.character(seq_len(vcount(g))) # "1","2","3",... # --- to DiagrammeR + Graphviz layout attributes --- gr <- from_igraph(g) gr$graph_attrs$layout <- "dot" gr$graph_attrs$rankdir <- "TB" # --- export jpeg --- export_graph( graph = g, file_name = "graph.pdf", file_type = "pdf" )