You need to enable JavaScript to run this app. R使用DiagrammeR包创建节点链接图找不到create_nodes函数求解决及替代方案
优惠活动
大模型
产品
解决方案
定价
更多

R使用DiagrammeR包创建节点链接图找不到create_nodes函数求解决及替代方案

报错原因与解决

create_nodes()、create_edges()为DiagrammeR v1.0版本前的旧函数,新版已从包中移除,替换为create_node_df()、create_edge_df(),调整后的可运行代码如下:

library(DiagrammeR)

# 新版创建节点数据框
nodes <- create_node_df(n = 7, type = "number")
# 新版创建边数据框
edges <- create_edge_df(from = c(1, 1, 2, 2, 3, 3),
                        to = c(2, 3, 4, 5, 6, 7),
                        rel = "leading to")

graph <- create_graph(nodes_df = nodes, 
                      edges_df = edges, 
                      graph_attrs = "layout = dot", 
                      node_attrs = "fontname = Helvetica", 
                      edge_attrs = "color = gray20") 

# 查看图表
render_graph(graph)

如果确实需要使用旧版函数,可安装指定版本的包:

remotes::install_version("DiagrammeR", version = "0.9.2")
其他节点链接图绘制方案

对应你需要的层级树状节点链接图,还有以下3种常用实现方案:

  • igraph方案
    代码示例:
    library(igraph)
    edges <- data.frame(from = c(1,1,2,2,3,3), to = c(2,3,4,5,6,7))
    g <- graph_from_data_frame(edges)
    # 设置树形布局渲染
    plot(g, layout = layout_as_tree(g))
    
  • ggraph方案(基于ggplot2语法)
    可自定义样式程度高,适配ggplot2生态的各类拓展功能:
    library(ggraph)
    library(igraph)
    edges <- data.frame(from = c(1,1,2,2,3,3), to = c(2,3,4,5,6,7))
    g <- graph_from_data_frame(edges)
    ggraph(g, layout = 'tree') + 
      geom_edge_link() + 
      geom_node_point(size = 8, fill = 'white', shape = 21) +
      geom_node_text(aes(label = name)) +
      theme_void()
    
  • DiagrammeR mermaid语法方案
    无需手动构建节点、边数据,直接用声明式语法描述结构,代码更简洁:
    library(DiagrammeR)
    mermaid("
    graph TD
    1-->2
    1-->3
    2-->4
    2-->5
    3-->6
    3-->7
    ")
    

节点链接图示例

内容的提问来源于stack exchange,提问作者Ranji Raj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.18 10:54:07