我正在嘗試使用 GGDAG 在 R 中重現下圖。
到目前為止,我能夠重現所有節點和箭頭。但是我不知道如何更改“U”節點的顏色并將相應的圖例添加到圖表中。非常感謝您的幫助!請參閱下面未著色 DAG 的代碼。
library(ggplot2)
library(ggdag)
coord_dag <- list(
x = c(P = 0, X = 2, D = 2, Z = 2, U = 4, M = 4, Y = 6),
y = c(P = 2, X = 0, D = 2, Z = 6, U = 0, M = 3, Y = 2))
my_dag <- ggdag::dagify(X ~ P,
Z ~ P,
D ~ X Z,
M ~ D Z,
U ~ X,
Y ~ U D M Z,
coords = coord_dag,
exposure = "D",
outcome = "Y")
ggdag::ggdag(my_dag)
theme_dag()
uj5u.com熱心網友回復:
這有點棘手,因為函式中似乎沒有直接的選項來標記您想要的顏色。也許最簡單的方法是向點層添加美學映射:
p <- ggdag::ggdag(my_dag) theme_dag()
p$layers[[3]]$mapping <-
aes(colour = c("Observed", "Unobserved")[as.numeric(name == "U") 1])
p scale_color_manual(values = c("black", "#cc2055"))
theme(legend.position = c(0.8, 0.8))

uj5u.com熱心網友回復:
您可以使用以下代碼:
library(ggplot2)
library(ggdag)
library(dplyr)
coord_dag <- list(
x = c(P = 0, X = 2, D = 2, Z = 2, U = 4, M = 4, Y = 6),
y = c(P = 2, X = 0, D = 2, Z = 6, U = 0, M = 3, Y = 2))
my_dag <- ggdag::dagify(X ~ P,
Z ~ P,
D ~ X Z,
M ~ D Z,
U ~ X,
Y ~ U D M Z,
coords = coord_dag,
exposure = "D",
outcome = "Y") %>%
tidy_dagitty() %>%
mutate(colour = ifelse(name == "U", "Unobserved", "Observed"))
my_dag %>%
ggplot(aes(x = x, y = y, xend = xend, yend = yend))
geom_dag_point(aes(colour = colour))
geom_dag_edges()
geom_dag_text()
theme_dag()
輸出:

uj5u.com熱心網友回復:
要更改 y 節點的顏色,請在整潔的 DAG 中添加一個新列,并使用顏色美學進行繪圖:
示例代碼:
library(ggplot2)
library(ggdag)
library(dplyr)
coord_dag <- list(
x = c(P = 0, X = 2, D = 2, Z = 2, U = 4, M = 4, Y = 6),
y = c(P = 2, X = 0, D = 2, Z = 6, U = 0, M = 3, Y = 2))
my_dag <- ggdag::dagify(X ~ P,
Z ~ P,
D ~ X Z,
M ~ D Z,
U ~ X,
Y ~ U D M Z,
coords = coord_dag,
exposure = "D",
outcome = "Y") %>%
tidy_dagitty() %>%
dplyr::mutate(colour = ifelse(name == "U", "Unobserved", "Observed"))
ggdag::ggdag(my_dag)
geom_dag_point(aes(colour = colour))
geom_dag_edges()
geom_dag_text()
theme_dag()
陰謀:

轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/443264.html
上一篇:修改缺少資料的分組條形圖顏色
