Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

Is there an automated way or a "template" to create Ishikawa (also called "fishone") diagrams with LaTeX?

They are used e. g. to show the factors influencing a process and have a hiearchical structure:

  • the horizontal main line is the process itself
  • the big branches show the main factors
  • and they can be detailed further to show the factors which influence or "compose" the main factors

For the usage:

  • it would be great if the layout (distributing the branches equally) could be done more or less automatically

Example from wikipedia (http://en.wikipedia.org/wiki/Ishikawa_diagram):

example

(link to google search result for more "inspiring" examples, to see how such diagrams can look like and how they are used)

share|improve this question
3  
Like all diagrams, it could be created using TikZ package. I am not aware of any packages that enable automated creation, however. –  ipavlic Apr 19 '11 at 8:25
    
is there some general concept in TikZ which allows drawing hierarchical "tree" structures like that and then define the corresponding formatting? Is the automatic placing of the elements (for better distribution in the available space) possible with TikZ? –  Martin Apr 19 '11 at 8:54
1  
Yes for a hierarchical tree structure, no for automatic placement. –  Matthew Leingang Apr 19 '11 at 9:21
    
@Matthew Leingang: thanks for clarifying. So there is no way that TikZ could arrange the arrows automatically? Is there another tool which could do that? –  Martin Apr 19 '11 at 10:18

1 Answer 1

up vote 1 down vote accepted

TikZ trees would probably be the way to go. However, things get pretty hairy fairly early on (example in Plain w/ XeTeX):

\input tikz
\font\figfont="Myriad Pro" at 8pt
\font\tinyfigfont="Myriad Pro" at 6pt
\usetikzlibrary{trees,shapes.geometric}
\tikzpicture[>=latex,font=\figfont,lbl/.style={draw=black,very thin,fill=#1,ellipse}]
  \coordinate
    child [grow=right] {
      child {
        child [grow=125] {
          child [grow=left] {node {\tinyfigfont Cost of Transport} edge from parent[<-,thin]}
          child {
            child [grow=left] {node {\tinyfigfont Access to premises} edge from parent[<-,thin]}
            child {node [lbl=yellow!20] {Transport}}
            child [missing]
          }
          child [missing] edge from parent[<-,thick]
        }
        child [xshift=1cm] {
          child [grow=125] {
            child [grow=left] {node {\tinyfigfont Security} edge from parent[<-,thin]}
            child {node [lbl=green!20!yellow] {Premises}}
            child [missing] edge from parent[<-,thick]
          }
          child
          child [grow=-125]
        }
        child [grow=-125] {
          child [grow=left] {node {\tinyfigfont Consultation} edge from parent[<-,thin]}
          child {node [lbl=purple!20] {Clients}}
          child [missing] edge from parent[<-,thick]
        }
      }
    };
\endtikzpicture
\bye

enter image description here

This could be improved upon a lot, but hopefully I could give you some idea.

share|improve this answer
    
thank you, that looks promising. As you say "example for pain with XeTeX": would it make a difference to use that in pdflatex or what does that mean? –  Martin Apr 20 '11 at 5:16
    
and could you explain what becomes "fairly hairy"? For a TikZ newbie like me the example looks ok and the code also? –  Martin Apr 20 '11 at 5:19
1  
@Martin: I used XeTeX merely for the font here. With pdflatex the font-commands would look different I think. And the first \input tikz would be something different with pdflatex. Let me answer your other question with a question: Can you tell where would you put the next node? How about another one inside the "Transport"-branch? Yeah. Hairy. –  morbusg Apr 20 '11 at 6:22

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.