DiagrammeR / graphviz - ребра начинаются с и указывают на центр узла - PullRequest
0 голосов
/ 10 апреля 2020

Я пытаюсь создать блок-схему, используя пакет DiagrammeR в R и wi sh, чтобы стрелки начинались и указывали на центр каждого узла. Я попытался использовать опции 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, ')')
      ")

enter image description here

Я действительно ищу что-то подобное :

enter image description here

Любая помощь будет принята с благодарностью!

Редактировать: удалив атрибуты headclip и tailclip, Я получаю что-то вроде этого, что лучше, но у каждой стрелки есть своя «вершина». Я надеюсь, что они имеют одну и ту же вершину.

enter image description here

1 Ответ

0 голосов
/ 10 апреля 2020

удалить атрибуты headclip и tailclip (или изменить их на true )

...