(Repost von Stackexchange TeX)

Zu diesem tikzpicture

Open in Online-Editor
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\usetikzlibrary{matrix}
\usetikzlibrary{positioning}

\begin{document}

\begin{tikzpicture}

\matrix[matrix of math nodes,every odd row/.style={align=right},every even row/.style={align=left},every node/.style={text width=1.5cm},row sep=0.2cm,column sep=0.2cm] (m) {
    10&5\\
    10&25\\
    5&20\\
    25&20\\
};
\draw (m.north east) rectangle (m.south west);
\draw (m.north) -- (m.south);
\draw (m.east) -- (m.west);

\coordinate (a) at ($(m.north west)!0.25!(m.north east)$);
\coordinate (b) at ($(m.north west)!0.75!(m.north east)$);
\node[above=5pt of a,anchor=base] {Low Price};
\node[above=5pt of b,anchor=base] {High Price};

\coordinate (c) at ($(m.north west)!0.25!(m.south west)$);
\coordinate (d) at ($(m.north west)!0.75!(m.south west)$);
\node[left=2pt of c,text width=1cm]  {Low Price};
\node[left=2pt of d,text width=1cm]  {High Price};

\node[above=18pt of m.north] (firm b) {Firm B};
\node[left=1.6cm of m.west,rotate=90,align=center,anchor=center] {Firm A};

\node[above=5pt of firm b]  {Payoff Matrix};
\end{tikzpicture}

\end{document}

mit diesem Ergebnis

Einfache Payoff-Matrix

möchte ich gerne Pfeile zur Anzeige der Equilibria hinzufügen, sodass in etwa folgende Auszahlungsmatrix herauskommt.

Payoff-Matrix mit Equilibria / dominanten Strategien

Jegliche Hilfe ist überaus willkommen!

gefragt 12 Okt '15, 07:02

G%C3%B6tz%20Freytag's gravatar image

Götz Freytag
312
Akzeptiert: 0%

bearbeitet 12 Okt '15, 08:00

Johannes's gravatar image

Johannes
7.2k132759


Erstmal prima, dass die Nodes in einer Matrix sind, denn da kann man sich einfach auf die Zellen beziehen und Pfeile dazwischen zeichnen. Die wechselnde Ausrichtung macht es aber schwerer. Ich hätte doppelt so viele Spalten genommen und die einfach abwechselnd bestückt.

Doch, einmal direkt am Beispiel, hier sind die zusätzlichen \draw-Befehle. Manchmal verwende ich die calc-Syntax, um wegen der Ausrichtung die Pfeile hinzuschieben. Dort siehst Du auch, wo man an Werten drehen kann, etwa um sie noch mittiger zu machen.

Open in Online-Editor
\draw [-latex, blue, very thick]
    (m-1-2.center) edge (m-1-1)
    ($(m-2-1.south)+(-0.5,0)$) edge ($(m-4-1.north)+(-0.5,0)$)
    (m-3-1.east) edge (m-3-2.center)
    ($(m-4-2.north)+(-0.5,0)$) to ($(m-2-2.south)+(-0.5,0)$);

Payoff-Matrix

Komplettcode:

Open in Online-Editor
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\usetikzlibrary{matrix}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}
\matrix[matrix of math nodes,every odd row/.style={align=right},
  every even row/.style={align=left},
  every node/.style={text width=1.5cm},row sep=0.2cm,
  column sep=0.2cm] (m) {
    10&5\\
    10&25\\
    5&20\\
    25&20\\
};
\draw (m.north east) rectangle (m.south west);
\draw (m.north) -- (m.south);
\draw (m.east) -- (m.west);

\coordinate (a) at ($(m.north west)!0.25!(m.north east)$);
\coordinate (b) at ($(m.north west)!0.75!(m.north east)$);
\node[above=5pt of a,anchor=base] {Low Price};
\node[above=5pt of b,anchor=base] {High Price};

\coordinate (c) at ($(m.north west)!0.25!(m.south west)$);
\coordinate (d) at ($(m.north west)!0.75!(m.south west)$);
\node[left=2pt of c,text width=1cm]  {Low Price};
\node[left=2pt of d,text width=1cm]  {High Price};

\node[above=18pt of m.north] (firm b) {Firm B};
\node[left=1.6cm of m.west,rotate=90,align=center,anchor=center]
  {Firm A};

\node[above=5pt of firm b]  {Payoff Matrix};

\draw [-latex, blue, very thick]
    (m-1-2.center) edge (m-1-1)
    ($(m-2-1.south)+(-0.55,0)$) edge ($(m-4-1.north)+(-0.55,0)$)
    (m-3-1.east) edge (m-3-2.center)
    ($(m-4-2.north)+(-0.55,0)$) to ($(m-2-2.south)+(-0.55,0)$);
\end{tikzpicture}
\end{document}
Permanenter link

beantwortet 12 Okt '15, 08:30

stefan's gravatar image

stefan ♦♦
5.8k12134

bearbeitet 12 Okt '15, 08:40

Erste Lösung von Steven B. Segletes.

Hier eine Lösung mi einer einfachen tabular mit ein wenig hin und her schieben. Es werden \LA, \RA, \DA und \UA für die Links-, Rechts, Abwärts- und Aufwärtspfeile eingeführt. Weiterhin \Under{<number>}{<arrow>} um einen Ab-/Aufwärstpfeil unter einer gegebenen Nummer zu platzieren. Da die Tabelle rechts ausgerichtet ist, werden die Links- und Rechtspfeile nach dem Tabellenmaterial angegeben, um eine korrekte Ausrichtung zu gewährleisten.

Here is a plain tabular solution, with a little lapping and stacking. I introduce LA,RA,DA, andUAfor the left, right, down, and up arrows; andUnder{}{}` for placing an up/down arrow under a given number. Since the tabular is right aligned, left and right arrows are placed after a data entry to achieve proper alignment.

alt text

Open in Online-Editor
\documentclass{article}
\usepackage{graphicx}
\usepackage{stackengine}
\newcommand\Under[2]{\strut\smash{\stackunder{#1}{#2}}}
\setstackgap{L}{1.1\normalbaselineskip}
\setstackgap{S}{2pt}
\def\LA{\rlap{\scalebox{2.8}[1.5]{\kern2pt\raisebox{-.5pt}{$\leftarrow$}}}}
\def\RA{\rlap{\scalebox{2.8}[1.5]{\kern2pt\raisebox{-.5pt}{$\rightarrow$}}}}
\def\UA{\tclap{\scalebox{1.5}[2.8]{$\uparrow$}}}
\def\DA{\bclap{\scalebox{1.5}[2.8]{$\downarrow$}}}
\renewcommand\arraystretch{1.5}
\begin{document}
\begin{tabular}{|rr|rr|}
\hline
&10\LA&&5\\
\Under{10}{\DA}&&\Under{25}{\UA}&\\
\hline
&5\RA&&20\\
25&&20&\\
\hline
\end{tabular}
\end{document}
Permanenter link
Dieser Antwort ist "Community-Wiki" markiert.

beantwortet 12 Okt '15, 08:14

Johannes's gravatar image

Johannes
7.2k132759

bearbeitet 12 Okt '15, 08:21

Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Aktuelle Buch-Infos

LaTeX Cookbook

LaTeX Beginners Guide

Limitierter Rabatt ebook
50% Coupon code tDRet6Y

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs füge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×492
×1

Frage gestellt: 12 Okt '15, 07:02

Frage wurde angeschaut: 1,494 Mal

Zuletzt aktualisiert: 12 Okt '15, 08:40