【发布时间】:2020-07-23 11:20:35
【问题描述】:
我正在尝试使用 R 中的 DiagrammeR 包创建流程图,并希望箭头从每个节点的中心开始并指向该中心。我尝试使用headclip 和tailclip 选项,它们似乎有助于使箭头在同一点开始和结束。但是,由于某种原因,它从节点的中心开始,并且奇怪地与节点重叠。这是我一直在使用的代码和(不正确的)输出图:
data <- list(a=1000, b=800, c=600, d=400)
grViz("
digraph flowchart {
graph [layout = dot, rankdir = LR]
# node definitions with substituted label text
node [fontname = Helvetica, shape = rectangle, fixedsize = true, width = 3, height = 0.8]
tab1 [label = '@@1'];
tab2 [label = '@@2'];
tab3 [label = '@@3'];
tab4 [label = '@@4'];
tab5 [label = '@@5'];
node [fontname = Helvetica, shape = rectangle, fixedsize = true, width = 3, height = 0.5]
rank = same; tab6; tab7; tab8; tab9;
tab6 [label = '@@6']
tab7 [label = '@@7']
tab8 [label = '@@8']
tab9 [label = '@@9']
tab10 [label = '@@10']
tab11 [label = '@@11']
# edge definitions with the node IDs
edge[tailclip = false, headclip = false];
tab1 -> tab3 -> {tab6 tab7 tab8 tab9};
tab1 -> tab4;
tab2 -> tab4;
tab2 -> tab5 -> {tab10 tab11};
}
[1]: paste0('Status known at 30 days \\n (n = ', data$a, ')')
[2]: paste0('Status known at 1 year \\n (n = ', data$a, ')')
[3]: paste0('Status known at 30 days \\n but not 1 year \\n (n = ', data$a, ')')
[4]: paste0('Status known for both \\n 30 days and 1 year \\n (n = ', data$a, ')')
[5]: paste0('Status known at 1 year \\n but not 30 days \\n (n = ', data$a, ')')
[6]: paste0('Withdrawal (n = ', data$a, ')')
[7]: paste0('Loss to follow-up (n = ', data$a, ')')
[8]: paste0('Missed visit (n = ', data$a, ')')
[9]: paste0('Visit not yet due (n = ', data$a, ')')
[10]: paste0('Missed 30D visit (n = ', data$b, ')')
[11]: paste0('Lost to follow-up (n = ', data$b, ')')
")
我真的在寻找这样的东西:
任何帮助将不胜感激!
编辑:通过删除headclip 和tailclip 属性,我得到了这样的东西,这更好,但每个箭头都有不同的“顶点”。我希望它们有相同的顶点。
【问题讨论】:
标签: r graphviz diagrammer