# 安装包
if (!requireNamespace("ggdag", quietly = TRUE)) {
install.packages("ggdag")
}
# 加载包
library(ggdag)有向无环图
注记
Hiplot 网站
本页面为 Hiplot Directed Acyclic Graphs 插件的源码版本教程,您也可以使用 Hiplot 网站实现无代码绘图,更多信息请查看以下链接:
有向无环图可视化。
环境配置
系统: Cross-platform (Linux/MacOS/Windows)
编程语言: R
依赖包:
ggdag
sessioninfo::session_info("attached")─ Session info ───────────────────────────────────────────────────────────────
setting value
version R version 4.5.2 (2025-10-31)
os Ubuntu 24.04.3 LTS
system x86_64, linux-gnu
ui X11
language (EN)
collate C.UTF-8
ctype C.UTF-8
tz UTC
date 2026-02-04
pandoc 3.1.3 @ /usr/bin/ (via rmarkdown)
quarto 1.8.27 @ /usr/local/bin/quarto
─ Packages ───────────────────────────────────────────────────────────────────
package * version date (UTC) lib source
ggdag * 0.2.13 2024-07-22 [1] RSPM
[1] /home/runner/work/_temp/Library
[2] /opt/R/4.5.2/lib/R/site-library
[3] /opt/R/4.5.2/lib/R/library
* ── Packages attached to the search path.
──────────────────────────────────────────────────────────────────────────────
数据准备
# 加载数据
tidy_ggdag <- dagify(
y ~ x + z2 + w2 + w1,
x ~ z1 + w1 + w2,
z1 ~ w1 + v,
z2 ~ w2 + v,
w1 ~ ~w2, # bidirected path
exposure = "x",
outcome = "y") %>%
tidy_dagitty()
# 查看数据
head(tidy_ggdag)$data
# A tibble: 13 × 8
name x y direction to xend yend circular
<chr> <dbl> <dbl> <fct> <chr> <dbl> <dbl> <lgl>
1 v 1.50 0.0485 -> z1 0.545 -0.994 FALSE
2 v 1.50 0.0485 -> z2 0.469 1.02 FALSE
3 w1 -0.299 -0.475 -> x -0.909 -0.619 FALSE
4 w1 -0.299 -0.475 -> y -0.963 0.552 FALSE
5 w1 -0.299 -0.475 -> z1 0.545 -0.994 FALSE
6 w1 -0.299 -0.475 <-> w2 -0.339 0.465 FALSE
7 w2 -0.339 0.465 -> x -0.909 -0.619 FALSE
8 w2 -0.339 0.465 -> y -0.963 0.552 FALSE
9 w2 -0.339 0.465 -> z2 0.469 1.02 FALSE
10 x -0.909 -0.619 -> y -0.963 0.552 FALSE
11 y -0.963 0.552 <NA> <NA> NA NA FALSE
12 z1 0.545 -0.994 -> x -0.909 -0.619 FALSE
13 z2 0.469 1.02 -> y -0.963 0.552 FALSE
$dag
dag {
v
w1
w2
x [exposure]
y [outcome]
z1
z2
v -> z1
v -> z2
w1 -> x
w1 -> y
w1 -> z1
w1 <-> w2
w2 -> x
w2 -> y
w2 -> z2
x -> y
z1 -> x
z2 -> y
}
可视化
# 有向无环图
p <- ggdag(tidy_ggdag) +
theme_dag()
p
