Schaubild mit Tikz

Tabellen und Grafiken erstellen und anordnen


julinchen2608
Forum-Newbie
Forum-Newbie
Beiträge: 4
Registriert: Sa 9. Jan 2016, 13:12

Schaubild mit Tikz

Beitrag von julinchen2608 »

Hallihallo,

ich versuche mich gerade, in Tikz einzuarbeiten. Beim Zeichnen von Funktionen klappt das super, nun möchte ich aber die aussagenlogische Fassung des erweiterten kognitiven Motivationsmodelles nach Heckhausen und Rheinberg damit zeichnen und bin am verzweifeln. Habs erst mit so einem Baumdings (node, child, usw.) versuche, das hat gar nicht geklappt.

Ich brauche Befehle, die mir Texte in Rechtecke packen und Pfeile bunt machen können. Kann mir jemand weiterhelfen?

Soll dann so wie in dem mit GeoGebra erstellten Bild (Anhang) aussehen.. ich will aber keine fertigen Code, sondern eher Tips - gib dem Mann einen Fisch und er isst für einen Tag.. ihr kennt ja das Sprichwort.

aussagenlogische Fassung ekMM.JPG
aussagenlogische Fassung ekMM.JPG (40.37 KiB) 4322 mal betrachtet

Vielen Dank schonmal!


Benutzeravatar
iTob
Forum-Meister
Forum-Meister
Beiträge: 1221
Registriert: Mo 19. Apr 2010, 22:19
Kontaktdaten:

Beitrag von iTob »

Hi,

ich hatte jetzt keine Lust, die ganze Abbildung für dich nachzubauen, aber mit dem folgenden Beispiel solltest du den Rest eigentlich selber leicht ergänzen können ;-)

\documentclass{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}

\usepackage{tikz}
\usetikzlibrary{positioning}

\begin{document}
\begin{tikzpicture}[
   % Stile definieren (Namen bitte sinvoll anpassen …):
   gruene Box/.style = {
      text width = 10em,
      fill = green!50,
   },
   tu-nix-Box/.style = {
      fill = black!20,
   },
   Ja-Pfeil/.style = {
      green, ultra thick, ->,
   },
   Nein-Pfeil/.style = {
      red, ultra thick, ->,
   },
]
   % Textblöcke zeichnen/platzieren
   \node (Erg belegt?) [gruene Box]
      {Ist das Ergebnis durch die Situation bereits festgelegt?};
   \node (tn1) [right = of Erg belegt?, tu-nix-Box] {tue nichts};
   \node [left = of Erg belegt?] {S-E-E};
   
\node (Erg beeinflussen?) [gruene Box, below = 15mm of Erg belegt?] {Kann ich das Ereignis durch hinreichendes Handeln beeinflussen?}; \node (tn2) [right = of Erg beeinflussen?, tu-nix-Box] {tue nichts}; \node [left = of Erg beeinflussen?] {H-E-E}; % Pfeile zeichnen \draw [Ja-Pfeil] (Erg belegt?) -- (tn1); \draw [Nein-Pfeil] (Erg belegt?) -- (Erg beeinflussen?); \draw [Nein-Pfeil] (Erg beeinflussen?) -- (tn2); \end{tikzpicture} \end{document}

Ich habe für die Boxen eine feste breite angeben (weil das besser aussieht), wenn du aber lieber mit \\ manuelle Umbrüche einfügen willst, kannst du anstelle von text width = x auch align = left benutzen.

Wenn du die Stile für mehrere Abbildungen benutzen willst, kannst du die auch mit \tikzset in der Präambel festlegen. Und wenn du magst, schau mal in meinem Blog vorbei, da habe ich im Dezember die meisten Features von TikZ kurz erklärt :-)

Viele Grüße
Tobi

Ich biete Hilfe, Beratung und Schulung für alle Fragen rund um TeX, Buchgestaltung und Textsatz, sowie Grafik- und Kommunikationsdesign.
Mehr Infos und Kontakt unter tobiw.de.

Hier schreibe ich über TeX: Mein Blog „TeX-Beispiel des Monats“ (Deutsch) und TeX.tips (Englisch).

julinchen2608
Forum-Newbie
Forum-Newbie
Beiträge: 4
Registriert: Sa 9. Jan 2016, 13:12

Beitrag von julinchen2608 »

wow, vielen Dank!
ich hatte es jetzt mühselig so gemacht: (bzw. angefangen)

\begin{tikzpicture}
\draw (0,0) node[black, left]{S-E-E};
\draw (3,0) node[black, right, draw, text width= 6cm]{Ist das Ergebnis durch die Situation bereits festgelegt?};
\draw (0,-2) node[black, left]{H-E-E};
\draw (3,-2) node[black, right, draw, text width= 6cm]{Kann ich das Ergebnis durch eigenes Handeln hinreichend beeinflussen?};
\draw (3,-4) node[black, right, draw, text width= 6cm]{Sind mir die Folgen des Ergebnisses wichtig genug?};
\draw (3,-6) node[black, right, draw, text width= 6cm]{Zieht das Ergebnis auch die erwünschten Folgen nach sich?};
\\draw (0,-2) node[black, left, text width= 3cm]{Anreiz- Kalkulation};
\end{tikzpicture}

aber deins ist viel schicker. Danke danke danke!!!


julinchen2608
Forum-Newbie
Forum-Newbie
Beiträge: 4
Registriert: Sa 9. Jan 2016, 13:12

Beitrag von julinchen2608 »

So, nun noch kurz für alle die das mal googlen weil sie den Code für eben jenes Motivationsmodell suchen - hier der fertige Code:
(Vorgeplänkel...)
noch dazu das ohne aussagenlogische Fassung:

\subsection{Erweitertes kognitives Motivationsmodell}
\begin{center}
\begin{tikzpicture}

\draw (0,0) node[black, below, draw]{Situation};
\draw (3,0) node[black, below, draw]{Handlung};
\draw (6,0) node[black, below, draw]{Ergebnis};
\draw (9,0) node[black, below, draw]{Folgen};
\draw[-] (0,0) -- (0,1);
\draw[-] (0,1) -- (5.5,1) node[above, pos=0.5]{Situations-Ergebnis-Erwartung};
\draw[-] (5.5,1) -- (5.5,0);
\draw[-] (3,0) -- (3,2);
\draw[-] (3,2) -- (6.5,2) node[above, pos=0.5]{Handlungs-Ergebnis-Erwartung};
\draw[-] (6.5,2) -- (6.5,0);
\draw[-] (6,0) -- (6,3);
\draw[-] (6,3) -- (9,3) node[above, pos=0.5]{Ergebnis-Folge-Erwartung};
\draw[-] (9,3) -- (9,0);
\draw (3,-2) node[black, below, draw]{Tätigkeitsanreize};
\draw [->] (3,-2) -- (3,-1);
\draw (9,-2) node[black, below, draw]{Folgenanreize};
\draw [->] (9,-2) -- (9,-1);
\draw [->] (1.2,-0.3) -- (1.8,-0.3);
\draw [->] (4.2,-0.3) -- (4.8,-0.3);
\draw [->] (7.2,-0.3) -- (8,-0.3);
\end{tikzpicture} \end{center}
$\ $\\
Nach Heckhausen und Rheinberg (vgl. \cite{Heckhausen}, S.375).
\subsubsection{Aussagenlogische Fassung}
\begin{center}
\begin{tikzpicture}[
   % Stile definieren (Namen bitte sinvoll anpassen …):
   gruene Box/.style = {
      text width = 10em,
      fill = green!30,
   },
   tu-nix-Box/.style = {
      fill = black!20,
   },
   Ja-Pfeil/.style = {
      green, ultra thick, ->,
   },
   Nein-Pfeil/.style = {
      red, ultra thick, ->,
   },
]
   % Textblöcke zeichnen/platzieren
   \node (Erg belegt?) [gruene Box]
      {Ist das Ergebnis durch die Situation bereits festgelegt?};
   \node (tn1) [right = of Erg belegt?, tu-nix-Box] {tue nichts};
   \node [left = of Erg belegt?] {S-E-E};
   
\node (Erg beeinflussen?) [gruene Box, below = 15mm of Erg belegt?] {Kann ich das Ereignis durch hinreichendes Handeln beeinflussen?}; \node (tn2) [right = of Erg beeinflussen?, tu-nix-Box] {tue nichts}; \node [left = of Erg beeinflussen?] {H-E-E}; \node (Folgen wichtig?) [gruene Box, below = 15mm of Erg beeinflussen?] {Sind mir die Folgen des Ergebnisses wichtig genug??}; \node (tn3) [right = of Folgen wichtig?, tu-nix-Box] {tue nichts}; \node [left = of Folgen wichtig?] {Anreiz-Kalkulation}; \node (Erg Folgen?) [gruene Box, below = 15mm of Folgen wichtig?] {Zieht das Ergebnis auch die gewünschten Folgen nach sich?}; \node (tn4) [right = of Erg Folgen?, tu-nix-Box] {tue nichts}; \node [left = of Erg Folgen?] {Intrumentalität}; % Pfeile zeichnen \draw [Ja-Pfeil] (Erg belegt?) -- (tn1); \draw [Nein-Pfeil] (Erg belegt?) -- (Erg beeinflussen?); \draw [Nein-Pfeil] (Erg beeinflussen?) -- (tn2); \draw [Nein-Pfeil] (Folgen wichtig?) -- (tn3); \draw [Nein-Pfeil] (Erg Folgen?) -- (tn4); \draw [Ja-Pfeil] (Erg beeinflussen?) -- (Folgen wichtig?); \draw [Ja-Pfeil] (Folgen wichtig?) -- (Erg Folgen?); \end{tikzpicture} \end{center}

Benutzeravatar
Stefan Kottwitz
Admin
Admin
Beiträge: 2714
Registriert: Di 8. Jul 2008, 00:39
Kontaktdaten:

Beitrag von Stefan Kottwitz »

Nebenbei habe ich auch mal was skizziert.

Mein häufiges Vorgehen:

  • styles verwenden, ggf. Grund-styles worauf andere aufbauen,

  • macros für alles was, sich wiederholt,

  • foreach-Schleifen, wenn sich etwas wiederholt

  • Rechteckig angeordnete Sachen in einer Matrix platzieren

  • Bezüge relativ (keine absoluten Koordinaten)

  • wenn wirklich Werte benötigt werden (Abstände), zentral angeben oder nur einmal definieren und andere Sachen damit berechnen,

  • sowieso TikZ rechnen lassen (Mittelpunkte, Schnitte, ...) statt selber Koordinaten aufzuschreiben.

Am Beispiel vereinfacht:

\documentclass[border=20pt]{standalone} 
\usepackage{tikz}
\usetikzlibrary{matrix,arrows.meta}
\tikzset{
  leer/.style     = { font=\sffamily\Large, align=center,
                      text width=2cm, anchor=center},
  box/.style      = { font=\sffamily, fill=green,  align=left, anchor=center},
  ergebnis/.style = { font=\sffamily\scriptsize, fill=black!20, anchor=center},
  pfeil/.style    = { very thick, color=red, ->, >=Triangle},
}
\newcommand*{\nix}{Tue nichts}
\begin{document}
\begin{tikzpicture}
  \matrix (m)
    [
      matrix of nodes,
      column sep      = 3em,
      row sep         = 5ex,
      column 1/.style = {nodes={leer}},
      column 2/.style = {nodes={box}},
      column 3/.style = {nodes={ergebnis}}
    ]
    {
      S-E-E               & Festgelegt?   & \nix \\
      H-E-E               & Beeinflussen? & \nix \\
      Anreiz\-kalkulation & Wichtig?      & \nix \\
      S-E-E               & Folgen?       & \nix \\
    };
    \foreach \i/\j in {1/2,2/3,3/4} {
      \draw [pfeil] (m-\i-2) -- (m-\j-2);
      \draw [pfeil] (m-\i-2) -- (m-\i-3);
     }
    \draw [pfeil] (m-4-2) -- (m-4-3);
\end{tikzpicture}
\end{document}
modell.png
modell.png (15.96 KiB) 4306 mal betrachtet

Stefan


Antworten