3

enter image description here Could someone please help me to convert this Graphic into TikZ? I am sorry for that stupid questiok but I am a total beginner with TikZ. Thanks for your help!

Sorry, all I've achieved so far is this:

\begin{tikzpicture}
\draw  (0,0) circle (1cm);
\draw (b) (0,3) ellipse (1cm and 0.5cm);
\draw (0,-3) ellipse (1cm and 0.5cm);
\draw (3,0) ellipse (1cm and 0.5cm);
\draw (-3,0) ellipse (1cm and 0.5cm);
\draw (-3,1) ellipse (1cm and 0.5cm);
\draw (-3,-1) ellipse (1cm and 0.5cm);
\end{tikzpicture}

As you can see, I'm pretty mentally overstrained with TikZ. I searched for direct graphs but couldn't find a good example to show me how it works. I can't get text into the shapes and no matching arrows. This is the result:

enter image description here

Sorry for the miserable try.

0

2 Answers 2

1

To add text to diagram you use node {..}. Note that there are a lot of different node shapes available (most require to load a library), including an ellipse shape, from the shapes.geometric library. You can place a node at a specific location with \node at (x,y) {...};, or you can load the positioning library and place one node relative to another, e.g. \node [right=of foo] {...};. This requires having a node with the name foo. To name a node, you either use \node [name=foo] {...}; or \node (foo) {...};.

Having named a node, you can also use the name as a coordinate, which makes drawing lines/arrows to a node easier, as you can do \draw [->] (foo) -- (bar); to draw an arrow from the foo node to the bar node. You don't want the arrows to reach the node border though, so you could use shorten >/shorten < to make the arrows shorter at either end.

I didn't finish the diagram, but you'll probably be able to do the rest. Note I manually added line breaks with \\ inside the nodes where needed. The code has some explanatory comments.

That said, I really recommend you to go through the tutorials chapter 2-6 (I think) of the TikZ manual. That will teach you a lot.

enter image description here

\documentclass[border=5mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{
  shapes.geometric, % for ellipse node
  positioning, % for placing nodes relative to another
  arrows.meta % for extra arrow tips
}
\begin{document}
\begin{tikzpicture}[
   node distance=2cm,% default distance when using e.g. left=of
   % make a couple of styles, to avoid having to repeat things so much
   outernodes/.style={
     ellipse, % shape
     align=center, % allows for manual line breaks with \\
     draw % draw outline
   },
   myarrow/.style={
      line width=2mm,
      -{Triangle[length=4mm, width=5mm]}, % add the Triangle arrow tip with custom width/height at end of line
      shorten >=3mm, % shorten end of line by 3mm
      shorten <=3mm, % shorten start of line by 3mm
   }
]

% start with center node
\node [circle, % shape
       fill=black, %background color 
       text=white, % text color
       align=center, % allow for line breaks
       font=\bfseries,  %font style
       name=center
      ] {psycho-\\logischer\\vertrag};

% then add the surrounding nodes
% note I can write outernodes in the style options, instead of repeating "ellipse, align=center, draw" in all of them
\node [right=of center, name=right, outernodes] {Transaktions-\\kostenüber-\\legungen};
\node [above=of center, name=top, outernodes] {foo};
\node [left=of center, name=left, outernodes] {bar};
\node [below=of center, name=bottom, outernodes] {baz};

\node [below=0 of left, outernodes, name=l2] {bar2};
\node [below=0 of l2, outernodes, name=l3] {bar3};

% add title node
\node [above=5mm of top, font=\LARGE\bfseries] {some title};

% draw arrows
\draw [myarrow] (top) -- (center);
\draw [myarrow] (bottom) -- (l3);


% make frame
\draw [rounded corners=15pt, % the 15pt sets the radius (or something) of the rounded corners
       dotted, % line style
       ultra thick % line width
      ]
      % - all tikzpictures have a special node called "current bounding box"
      %   which fits around the content of the diagram
      % - nodename.<something> is used to access an anchor, i.e. a point along the border of a node
      % - to get a coordinate relative to a node anchor, one can use e.g.
      %     ([shift={(5pt,5pt)}]nodename.north)
      %   which is the point 5pt right and 5pt above the north anchor of the node
      ([shift={(-5pt,-5pt)}]current bounding box.south west)
      rectangle % draw a rectangle from the previous to the next coordinate
      ([shift={(5pt,5pt)}]current bounding box.north east);
\end{tikzpicture}
\end{document}  
0
1

Thank you a lot Torbjørn T. for your work. It helped me a lot to reach my goal. I understood well what you did and I promise to read the introduction of Tikz. This is my result:

\documentclass[border=5mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{
  shapes.geometric, % for ellipse node
  positioning, % for placing nodes relative to another
  arrows.meta % for extra arrow tips
}
\begin{document}
 \begin{tikzpicture}[
   node distance=1.5cm, % default distance when using e.g. left=of
   % make a couple of styles, to avoid having to repeat things so much
   outernodes/.style={
     ellipse,
     align=center,
     draw
   },
   myarrow/.style={
      line width=2mm,
      -{Triangle[length=4mm, width=5mm]}, % add the Triangle arrow tip with custom width/height at end of line
      shorten >=1.5mm, % shorten end of line by 3mm
      shorten <=5mm, % shorten start of line by 3mm
   }
]
\node [circle, % shape
       fill=black, %background color 
       text=white, % text color
       align=center, % allow for line breaks
       font=\bfseries,  %font style
       name=center
      ] {Psycho-\\logischer\\Vertrag};

\node [right=of center,name=right, font=\scriptsize, outernodes] {Transaktions-\\kostenüberle-\\gungen};
\node [above=of center, name=top,font=\scriptsize, outernodes] {Stresserfahrungen in\\ der Restrukturierung};
\node [left=of center, name=left,font=\scriptsize, outernodes] {Reziprozitäts-\\verletzung};
\node [below=of center, name=bottom,font=\scriptsize, outernodes] {Transformamtionsproble};

\node [above=0 of left, outernodes,font=\scriptsize, name=l2] {Arbeits-\\emotionen};
\node [below=0 of left, outernodes,font=\scriptsize, name=l3] {Gerechtigkeits-\\normen};

\node [above=5mm of top, font=\bfseries] {Betriebliche Interaktionskultur};

\draw [myarrow] (top) -- (center);
\draw [myarrow] (top) -- (right);
\draw [myarrow,shorten >=5mm,
      shorten <=1.5mm,] (center) -- (bottom);
\draw [myarrow] (bottom) -- (l3);
\draw [myarrow] (bottom) -- (right);
\draw [myarrow] (top) -- (l2);
\draw [myarrow] (left) -- (center);
\draw [myarrow] (right) -- (center);

\draw [rounded corners=15pt, % the 15pt sets the radius (or something) of the rounded corners
       dotted, % line style
       ultra thick % line width
      ]
      % - all tikzpictures have a special node called "current bounding box"
      %   which fits around the content of the diagram
      % - nodename.<something> is used to access an anchor, i.e. a point along the border of a node
      % - to get a coordinate relative to a node anchor, one can use e.g.
      %     ([shift={(5pt,5pt)}]nodename.north)
      %   which is the point 5pt right and 5pt above the north anchor of the node
      ([shift={(-5pt,-5pt)}]current bounding box.south west)
      rectangle % draw a rectangle from the previous to the next coordinate
      ([shift={(5pt,5pt)}]current bounding box.north east);
\end{tikzpicture}
\end{document}

enter image description here

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .