Triangular Table

Tabellen und Grafiken erstellen und anordnen


MR.ROBOT
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: Do 15. Jun 2017, 15:42

Triangular Table

Beitrag von MR.ROBOT »

Hallo,

ich bin auf der Suche nach einer gedrehten ""triangular table" Darstellung. Eventuell irre ich mich auch und suche etwas anderes. Leider konnte ich nach einer ausfürhlichen Suche keine Hilfe finden.

Ich möchte folgendes darstellen:
Dateianhänge
Datei.PNG
Datei.PNG (25.18 KiB) 2005 mal betrachtet

Bartman
Forum-Meister
Forum-Meister
Beiträge: 2456
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Beitrag von Bartman »

Bild

Creating a triangular table dürfte Deinem Wunsch recht nahe kommen.

MR.ROBOT
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: Do 15. Jun 2017, 15:42

Beitrag von MR.ROBOT »

Leider handelt es sich hierbei um die gedrehte Darstellung. Ich hatte mir dies schon angesehen und es hat mir nicht viel gebracht.

Um etwas genauer zu werden folgendes: Ich möchte als Inhalt der einzelnen Rechtecke keine natürlichen Zahlen sondern, wie man in meinem Beispielbild ekennt, Buchstaben mit Potenzen.
Versuche ich in diesem Code:
%\documentclass[tikz]{standalone}


\documentclass[10pt]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage{tikz}
\usetikzlibrary{calc,intersections}
\usetikzlibrary{shapes.geometric}

\begin{document}
\begin{tikzpicture}[
    rotate=135,
    every label/.append style={text depth=+0pt},
    label position=center,
   % every cell/.style={fill=gray!25},
   % column 3/.style={fill=red!25},
   % row 5/.style={fill=green!25},
   % cell 2-2/.style={fill=gray},
   % cell 3-2/.style={fill=gray!50},
    ]
\foreach \jRow[count=\jCount from 1, remember=\mCount] in {%
        0,%
        {15750,0},%
        {7875,2625,0},%
        {9375,4375,750,0},%  
        {11875,7125,2500,1000,$A^{1}B^{1}$},%
        {15125,10500,5375,3500,5000,$C^{1}$},%
        {15125,10500,5375,3500,5000,0,$A^{1}$}%
    } {
    \foreach \mCell[count=\mCount from 1, remember=\mCount] in \jRow {
        \node[
            diamond,
            minimum size=1.414cm+0.4\pgflinewidth,
            draw,
            every cell/.try,
            row \jCount/.try,
            column \mCount/.try,
            cell \jCount-\mCount/.try,
            label={\pgfmathprintnumber{\mCell}},
            alias=@lastnode,
            alias=@lastrow-\mCount
        ] at (\mCount-.5,\jCount-.5) {};
        \ifnum\mCount=1
            %\path [late options={name=@lastnode, label=above left:$\jCount$}];
        \fi
    }
       % \path [late options={name=@lastnode, label=above:$a_\jCount$}];
    }
  %  \foreach \mCountExtra in {1,...,\mCount}
   %     \path [late options={name=@lastrow-\mCountExtra, label=above right:$\mCountExtra$}];
\end{tikzpicture}
\end{document}
die natürlichen Zahlen wie beschrieben zu ersetzen erhalte ich folgenden Fehler:
"! Package PGF Math Error: Could not parse input '$A^{1}B^{1}$' as a floating point number, sorry. The unreadable part was near '$A^{1}B^{1}$'"

Außerdem sind die Rechtecke nach oben nicht geöffnet, sondern verschlossen. In meinem Beispielbild wird dies deutlich.

Vielen Dank!

Bartman
Forum-Meister
Forum-Meister
Beiträge: 2456
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Beitrag von Bartman »

Mir fällt aktuell nur etwas zu Deiner Fehlermeldung ein:

\pgfmathprintnumber kann ein in den mathematischen Modus versetztes Argument nicht auswerten. Die erlaubten Schreibweisen der erwarteten Zahl findest Du in Kapitel 92 der Dokumentation von pgf/tikz.
\documentclass[tikz, border=5pt]{standalone}
\usetikzlibrary{shapes.geometric}

\begin{document}
\begin{tikzpicture}[
	rotate=135,
	every label/.append style={text depth=+0pt},
	label position=center
]
\foreach \jRow[count=\jCount from 1, remember=\mCount] in {%
	0,%
	{15750,0},%
	{7875,2625,0},%
	{9375,4375,750,0},%  
	{11875,7125,2500,1000,$A^1{,}B^1$},%
	{15125,10500,5375,3500,5000,$C^1$},%
	{15125,10500,5375,3500,5000,,$A^1$}%
} {
	\foreach \mCell[count=\mCount from 1, remember=\mCount] in \jRow {
		\node[
			diamond,
			minimum size=1.414cm+0.4\pgflinewidth,
			draw,
			every cell/.try,
			row \jCount/.try,
			column \mCount/.try,
			cell \jCount-\mCount/.try,
			label={\mCell},% \pgfmathprintnumber entfernt
			alias=@lastnode,
			alias=@lastrow-\mCount
		] at (\mCount-.5,\jCount-.5) {};
	}
}
\end{tikzpicture}
\end{document}

MR.ROBOT
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: Do 15. Jun 2017, 15:42

Beitrag von MR.ROBOT »

Vielen Dank Bartman für deine Antwort!

Deine Lösung funktioniert soweit ganz gut. Allerdings weiß ich immer noch nicht wie ich die Rechtecke nach oben öffnen kann.
Außerdem benötige ich eine Art Index wie man in meinem Vergleichsbild sehen kann.

Bild


Danke für die Hilfe!

Bartman
Forum-Meister
Forum-Meister
Beiträge: 2456
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Beitrag von Bartman »

Eine andere Herangehensweise:
\documentclass[tikz, border=5pt]{standalone}
\usetikzlibrary{positioning, shapes.geometric}

\begin{document}
\begin{tikzpicture}[
	nodes={align=center},
	node distance=0em,
	thick,
	border/.style={
		draw=#1,
		diamond,
		outer sep=0pt,
		minimum size=7em
	},
	border/.default=black,
	borderless/.style={border=none}
]
\node [border]     (1)                     {$S^1,S^4,B^4$};

\node [border]     (2)  [above left=of 1]  {$S^4$};
\node [border]     (3)  [above right=of 1] {};

\node [border]     (4)  [above left=of 2]  {$S^4$};
\node [border]     (5)  [above=of 1]       {};
\node [border]     (6)  [above right=of 3] {$S^3,S^4,B^4$};

\node [borderless] (7)  [above left=of 4]  {$A^1$};
\node [borderless] (8)  [above left=of 5]  {$C^2$};
\node [borderless] (9)  [above right=of 5] {$A^3,C^3$};
\node [borderless] (10) [above right=of 6] {$A^4$};

\node              (11) [above=of 7]       {$a$};
\node              (12) [above=of 8]       {$b$};
\node              (13) [above=of 9]       {$c$};
\node              (14) [above=of 10]      {$d$};

\draw (7.south) -- (7.west);
\foreach \nodenumber in {7,...,10}
	\draw (\nodenumber.west) -- (\nodenumber.west|-\nodenumber.north);
\draw (10.south) -- (10.east) -- (10.east|-10.north);
\end{tikzpicture}
\end{document}

Antworten