Organizational chart

organization chart sample, diagraph dot layout

an example with hidden horizontal lines to distribute the organization chart so that it does not move and hidden points for anchoring and distribute it in parallel

strict digraph "main"
{
    layout="dot";
   
    rankdir="TB";
    splines="ortho";
    ranksep=.5;

    node[ shape="rect"  ];
    inicio [label = "Limited participation of the population living in poverty \n marginalization or vulnerability for community development." ];
     a [label = "Social policies do not \ ncompletely achieve the strengthening of the \nsocial fabric for community development." ];
     b [label = "Misuse of the potentialities \nbetween the population and the state government for \ncommunity development." ];
     c [label = "Reduction of the activities of the population in \npoverty conditions for the \ncommunity development." ];
     d [label = "Difficulty in generating strategies for \ncommunity development between the population and \nthe state government." ];
    medio [label = "Population of the state  with the capacity to develop actions to strengthen the social fabric for community development." ];
    e [label = "Insufficient mechanisms for the articulation between the \n population living in poverty, marginalization or \n vulnerability and the state government"];
    f [label = "Limited resources to carry out actions in the \nparticipation of the population living in poverty \n marginalization or vulnerability"];
    g [label = "Insufficient information on the capacities of the \n population to participate in actions to improve \n their living conditions." ];
    h [label = "Limited interest to strengthen and develop \n participation of the population living in poverty \n marginalization or vulnerability." ];
    i [label = "Inactivity in the participation \nof the population"];
    j [label = "Low level of capabilities of the \npopulation to manage \n before the state government"];
    k [label = "Weak culture of \n information alternatives \n and documentation in the \n population"];
    l [label = "Lack of knowledge and \n mistrust among the \n population"];

    {rank="same" a;b;c;d}
    {rank="same" e;f;g}
    {rank="same" h;i;j;k;l}

    node[ shape="point" height="0.0" width="0.0"];
    
    a0;    a1;    a2;    ac;    a3;    a4;    a5;
    b0;    b1;    b2;    bc;    b3;    b4;    b5;
    c0;    c1;    c2;    cc;    c3;    c4;    c5;
    d0;    d1;    d2;    dc;    d3;    d4;    d5;

    inicio:s -> ac:n[ dir="back" ];

    a0:e -> a1:w[ arrowhead="none" ];
    a1:e -> a2:w[ arrowhead="none" ];
    a2:e -> ac:w[ arrowhead="none" ];
    ac:e -> a3:w[ arrowhead="none" ];
    a3:e -> a4:w[ arrowhead="none" ];
    a4:e -> a5:w[ arrowhead="none" ];
   
    {rank="same" a0;a1;a2;ac;a3;a4;a5}
    
    a0:s ->  a:n[ dir="back" ];
    a2:s ->  b:n[ dir="back" ];
    a3:s ->  c:n[ dir="back" ];
    a5:s ->  d:n[ dir="back" ];

    b0:e -> b1:w[ arrowhead="none" ];
    b1:e -> b2:w[ arrowhead="none" ];
    b2:e -> bc:w[ arrowhead="none" ];
    bc:e -> b3:w[ arrowhead="none" ];
    b3:e -> b4:w[ arrowhead="none" ];
    b4:e -> b5:w[ arrowhead="none" ];

    {rank="same" b0;b1;b2;bc;b3;b4;b5}

     a:s -> b0:n[ dir="back" ];
     b:s -> b2:n[ dir="back" ];
     c:s -> b3:n[ dir="back" ];
     d:s -> b5:n[ dir="back" ];
    
    bc:s -> medio:n[ dir="back" ];

    {rank="same" c0;c1;c2;cc;c3;c4;c5}
    
    medio:s -> cc:n[ dir="back" ];

    c0:e -> c1:w [ arrowhead="none" ];
    c1:e -> c2:w [ arrowhead="none" ];
    c2:e -> cc:w [ arrowhead="none" ];
    cc:e -> c3:w [ arrowhead="none" ];
    c3:e -> c4:w [ arrowhead="none" ];
    c4:e -> c5:w [ arrowhead="none" ];
   
    cc:s -> f :n [arrowhead="none" ];
    c5:s -> g :n [ dir="back" ];

    d0:e -> d1:w [ arrowhead="none" color="white"];
    d1:e -> d2:w [ arrowhead="none" ];
    d2:e -> dc:w [ arrowhead="none" ];
    dc:e -> d3:w [ arrowhead="none" color="white"];
    d3:e -> d4:w [ arrowhead="none" ];     
    d4:e -> d5:w [ arrowhead="none" ];     
    
    c0:s -> e :n [ dir="back" ];
    e :s -> d0:n [ dir="back" ];
    d0:s -> h :n [ arrowhead="none"  ];
    f :s -> d2:n [ dir="back" ];
    d1:s -> i :n [ dir="back" ];
    dc:s -> j :n [ dir="back" ];
    d3:s -> k :n [ dir="back" ];
    g :s -> d4:n [ dir="back" ];
    d5:s -> l :n [ dir="back" ];
    
    {rank="same" d0;d1;d2;dc;d3;d4;d5}
}

1 Like

Another way of doing almost the same thing would be to use nodes with an underline shape.

strict digraph "main"
{
    layout="dot";
    rankdir="TB";
    splines="ortho";
    ranksep=.5;
    
    node[ shape="rect"  ];
    inicio [label = "Limited participation of the population living in poverty \n marginalization or vulnerability for community development." ];
     a [label = "Social policies do not \n completely achieve the strengthening of the \nsocial fabric for community development." ];
     b [label = "Misuse of the potentialities \nbetween the population and the state government for \ncommunity development." ];
     c [label = "Reduction of the activities of the population in \npoverty conditions for the \ncommunity development." ];
     d [label = "Difficulty in generating strategies for \ncommunity development between the population and \nthe state government." ];
    medio [label = "Population of the state  with the capacity to develop actions to strengthen the social fabric for community development." ];
    e [label = "Insufficient mechanisms for the articulation between the \n population living in poverty, marginalization or \n vulnerability and the state government"];
    f [label = "Limited resources to carry out actions in the \nparticipation of the population living in poverty \n marginalization or vulnerability"];
    g [label = "Insufficient information on the capacities of the \n population to participate in actions to improve \n their living conditions." ];
    h [label = "Limited interest to strengthen and develop \n participation of the population living in poverty \n marginalization or vulnerability." ];
    i [label = "Inactivity in the participation \nof the population"];
    j [label = "Low level of capabilities of the \npopulation to manage \n before the state government"];
    k [label = "Weak culture of \n information alternatives \n and documentation in the \n population"];
    l [label = "Lack of knowledge and \n mistrust among the \n population"];

    {rank="same" a;b;c;d}
    {rank="same" e;f;g}
    {rank="same" h;i;j;k;l}
    inicio->p1[dir=back]
    p1->{a,b,c,d}[dir=back]
    {a;b;c;d}->p2[dir=back]
    p2->medio[dir=back]
    medio->p3[dir=back]
    p3->{e,f,g}[dir=back]
    e->h[dir=back]
    f->p4[dir=back]
    p4->{i,j}[dir=back]
    g->p5[dir=back]
    p5:w->{k,l}[dir=back]
    
    p1[label="",shape=underline, height=0, width=10]
    p2[label="",shape=underline, height=0, width=10]
    p3[label="",shape=underline, height=0, width=7]
    p4[label="",shape=underline, height=0, width=2]
    p5[label="",shape=underline, height=0, width=2]
    
}

1 Like

That’s a neat trick, thanks for sharing!

1 Like

Another possibility is to use plaintext nodes filled with β€œline” and β€œno break space” characters.

strict digraph "main"
{
    layout="dot";
    rankdir="TB";
    splines="ortho";
    ranksep=.5;
    
    node[ shape="rect"  ];
    inicio [label = "Limited participation of the population living in poverty \n marginalization or vulnerability for community development." ];
     a [label = "Social policies do not \n completely achieve the strengthening of the \nsocial fabric for community development." ];
     b [label = "Misuse of the potentialities \nbetween the population and the state government for \ncommunity development." ];
     c [label = "Reduction of the activities of the population in \npoverty conditions for the \ncommunity development." ];
     d [label = "Difficulty in generating strategies for \ncommunity development between the population and \nthe state government." ];
    medio [label = "Population of the state  with the capacity to develop actions to strengthen the social fabric for community development." ];
    e [label = "Insufficient mechanisms for the articulation between the \n population living in poverty, marginalization or \n vulnerability and the state government"];
    f [label = "Limited resources to carry out actions in the \nparticipation of the population living in poverty \n marginalization or vulnerability"];
    g [label = "Insufficient information on the capacities of the \n population to participate in actions to improve \n their living conditions." ];
    h [label = "Limited interest to strengthen and develop \n participation of the population living in poverty \n marginalization or vulnerability." ];
    i [label = "Inactivity in the participation \nof the population"];
    j [label = "Low level of capabilities of the \npopulation to manage \n before the state government"];
    k [label = "Weak culture of \n information alternatives \n and documentation in the \n population"];
    l [label = "Lack of knowledge and \n mistrust among the \n population"];

    {rank="same" a;b;c;d}
    {rank="same" e;f;g}
    {rank="same" h;i;j;k;l}
    inicio->p1[dir=back, headclip=false]
    p1->{a,b,c,d}[dir=back, tailclip=false]
    {a;b;c;d}->p2[dir=back, headclip=false]
    p2->medio[dir=back, tailclip=false]
    medio->p3[dir=back, headclip=false]
    p3->{e,f,g}[dir=back, tailclip=false]
    e->h[dir=back]
    f->p4[dir=back, headclip=false]
    p4->{i,j}[dir=back, tailclip=false]
    g->p5[dir=back, headclip=false]
    p5:w->{k,l}[dir=back, tailclip=false]
    

    p1[shape=none,margin=0,height=0, label="――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――  ",width=15]
    p2[shape=none,margin=0,height=0, label="――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――  ",width=15]
    p3[shape=none,margin=0,height=0, label=" ――――――――――――――――――――――――――――――――――――――――",width=10]
    p4[shape=none,margin=0,height=0, label="―――――――――――            ",width=4]
    p5[shape=none,margin=0,height=0, label="――――――――――                    ",width=4] 

}

1 Like