[英]Adjust edge label position in mediation diagram with DiagrammeR?
我正在尝试使用 R 中的DiagrammeR
绘制标准的三角中介图(它也可以解释 graphviz 代码)。 总的来说,它工作正常,但边缘标签文本的放置很奇怪。 底部边缘标签未居中,两个倾斜的边缘标签位于不同的高度(参见下图中的红线)。 有没有办法手动为边缘文本分配位置或获得更一致的内容?`
library(DiagrammeR)
# Create a node data frame (ndf)
ndf <- create_node_df(
n = 3,
label = c("Experimental\nTreatment", "Some\nMediator", "Outcome\nof Interest"),
shape = rep("rectangle", 3),
style = "empty",
fontsize = 6,
fixedsize = TRUE,
height = .5,
width = .75,
color = "gray40",
x = c(1, 2, 3),
y = c(1, 2, 1)
)
# Create an edge data frame (edf)
edf <- create_edge_df(
from = c(1, 1, 2),
to = c(2, 3, 3),
label = c("1.1*", "2.0*", "-0.33***"),
fontsize = 6,
minlen = 1,
color = "gray40",
)
# Create a graph with the ndf and edf
graph <- create_graph(
nodes_df = ndf,
edges_df = edf
)
graph %>%
render_graph()
我也很想知道这个问题的答案。
我试图通过以下方式删除默认的“布局”图形属性并设置图形布局的方向:
graphAttr <- DiagrammeR::get_global_graph_attrs(graph)
但是,我收到以下错误:错误:'get_global_graph_attrs' 不是来自 'namespace:DiagrammeR' 的导出对象
....因此,我被卡住了。
在使用DiagrammeR
一段时间后,我最终切换到 LaTeX 图表包TikZ
。 它允许对图表的每个方面进行巨大的控制,但可能会让人不知所措。 如果这很重要,TikZ 还需要进行一些调整才能将图表转换为 HTML 输出。 对于使用 LaTeX 的 Beamer 类进行幻灯片的演示,使用 R 中的函数生成 TikZ 代码效果很好。 然后将该 TikZ 代码写入一个文本文件,该文件可以通过 LaTeX 命令\\input{path/to/file.txt}
自动导入,或者只是复制并粘贴到我的幻灯片中。
查看两个 DiagrammeR 解决方案和 TikZ 解决方案的代码,在这里: https ://stackoverflow.com/a/64886536/893399
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.