You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用ggplot2绘制左至右流向且带箭头标注的R Markdown流程图?

问题解决:调整ggflowchart流向并添加箭头标注

我想用ggplot2结合ggflowchart绘制左至右流向的R Markdown流程图(RMD在左,PDF在右),同时给箭头添加旁侧标注,现有的代码生成的是上下流向,该怎么调整?

现有代码:

library(tidyverse)
library(ggflowchart)
library(rcartocolor)
workflow <- tibble::tibble(from = c("RMD","MD","MD","MD","LaTeX"), to = c("MD","LaTeX","HTML","WORD","PDF"))
ggflowchart(workflow)
node_data <- tibble::tibble(name = c("RMD","MD","LaTeX","HTML","WORD","PDF"), label = c("RMD","MD","LaTeX","HTML","WORD","PDF"))
ggflowchart(workflow,node_data)                           
quarto <- ggflowchart(workflow,
            node_data,
            colour = "#585c45",
            text_colour = "#585c45",
            arrow_colour = "#585c45"
)+
  scale_fill_carto_d(palette = "Antique") +
  labs(title = "R Markdown Workflow") +
  theme(
    legend.position = "none",
    plot.background = element_rect(
      colour = "#f2e4c1",
      fill = "#f2e4c1"
    ),
    plot.title = element_text(
      size = 20,
      hjust = 0.5,
      face = "bold",
      colour = "#585c45"
    )
  )

1. 改为左至右水平流向

在ggflowchart()函数中添加layout = "horizontal"参数,即可将默认的垂直上下布局改为水平左右布局,让RMD节点处于左侧,后续节点依次向右排列。

2. 添加箭头旁侧标注

  • 首先在workflow数据框中新增一列(比如edge_label),存储每个箭头需要显示的标注文本;
  • 然后在ggflowchart()函数中通过edge_label参数指定该列,实现箭头旁的文字标注。

修改后的完整代码:

library(tidyverse)
library(ggflowchart)
library(rcartocolor)

# 新增箭头标注列
workflow <- tibble::tibble(
  from = c("RMD","MD","MD","MD","LaTeX"), 
  to = c("MD","LaTeX","HTML","WORD","PDF"),
  edge_label = c("knit", "pandoc", "pandoc", "pandoc", "XeLaTeX/LuaLaTeX") # 箭头标注文本
)

node_data <- tibble::tibble(
  name = c("RMD","MD","LaTeX","HTML","WORD","PDF"), 
  label = c("RMD","MD","LaTeX","HTML","WORD","PDF")
)

quarto <- ggflowchart(
  workflow,
  node_data,
  colour = "#585c45",
  text_colour = "#585c45",
  arrow_colour = "#585c45",
  layout = "horizontal", # 设置水平左至右布局
  edge_label = edge_label # 指定箭头标注列
)+
  scale_fill_carto_d(palette = "Antique") +
  labs(title = "R Markdown Workflow") +
  theme(
    legend.position = "none",
    plot.background = element_rect(
      colour = "#f2e4c1",
      fill = "#f2e4c1"
    ),
    plot.title = element_text(
      size = 20,
      hjust = 0.5,
      face = "bold",
      colour = "#585c45"
    )
  )

# 输出图表
print(quarto)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 02:32:27