Pyramidendiagramm (Beispiel): Könnte man automatisch Farben zuordnen? Bzw. wahlweise manuell? So geht es schonmal nicht: Öffne in Overleaf
\documentclass[border=10pt, varwidth, tikz]{standalone} \usepackage{calc} \usepackage{ifthen} \usepackage{tikz} \usetikzlibrary{intersections} \begin{document} \begin{tikzpicture} \pgfmathsetmacro{\grundseite}{6.3} %Grundseite \pgfmathsetmacro{\hoehe}{7} %Höhe \coordinate (A) at (-0.5*\grundseite,0); \coordinate (B) at (0.5*\grundseite,0); \coordinate (C) at (0,\hoehe); % Dreieck \draw[name path=AC] (A) -- (C); \draw[name path=BC] (B) -- (C); \draw[name path=AB] (A) -- (B); % Werte \foreach \y/\TEXT/\Farbe in {% ================ 0/G/brown, 1.25/F/red,%, 2/E/orange%, %3/D, %4/C,5/B, %6/Rest }% ================ { \path[name path=horiz] (A|-0,\y) -- (B|-0,\y); \draw[name intersections={of=AC and horiz,by=P}, name intersections={of=BC and horiz,by=Q}] (P) -- (Q) node[midway,above] {\TEXT}; \fill[color=\Farbe] (A) -- (P) -- (Q) -- (B); } \end{tikzpicture} \end{document} gefragt 29 Jul '17, 19:50 cis |
Für die Füllung der Pyramide kannst Du Hier ist mal ein Vorschlag unter der Annahme, dass alle Streifen gleich hoch sein sollen. Öffne in Overleaf
\documentclass[border=10pt, varwidth, tikz]{standalone} \usepackage{xparse} \ExplSyntaxOn \clist_new:N \l_streifen_clist \clist_const:Nn \l_farben_clist { purple , blue , orange , gray ,yellow } \NewDocumentCommand\farbliste{ m }{ \clist_set:Nn \l_farben_clist { #1 } } \NewDocumentCommand\streifen{ o O{streifen} m m m } { \clist_set:Nn \l_streifen_clist{#5} \pgfmathsetmacro\streifenhoehe{#4/\clist_count:N \l_streifen_clist} \foreach [evaluate={\j=int(mod(\i-1,\clist_count:N \l_farben_clist)+1)}] \i in {1,...,\clist_count:N \l_streifen_clist} { \node (#2bg\i) [ anchor=north, fill=\clist_item:Nn \l_farben_clist{\j}!40, minimum~width=#3~cm, minimum~height=\streifenhoehe~cm, ] at (0,\i*\streifenhoehe) {} ; \node (#2\i)[anchor=south,#1] at (#2bg\i.south) {\strut\clist_item:Nn \l_streifen_clist {\i}} ; } } \ExplSyntaxOff \pgfmathsetmacro{\grundseite}{6.3} %Grundseite \pgfmathsetmacro{\hoehe}{7} %Höhe \begin{document} \begin{tikzpicture} \farbliste{ gray , orange }% Verwendung anderer Farben \path (-0.5*\grundseite,0) coordinate (A) +(\grundseite,0) coordinate(B) (0,\hoehe) coordinate(C) ; \draw [path picture={\streifen[font=\small]{\grundseite}{\hoehe}{9000,8000,7000,6000}}] (A)--(B)--(C)--cycle ; \end{tikzpicture} \begin{tikzpicture} \path (-0.5*\grundseite,0) coordinate (A) +(\grundseite,0) coordinate(B) (0,\hoehe) coordinate(C) ; \draw [path picture={\streifen[font=\small]{\grundseite}{\hoehe}{9000,8000,7000,6000,5000,4000,{}}}] (A)--(B)--(C)--cycle ; \node[xshift=1cm]at(streifen7){3000}; \end{tikzpicture} \end{document} beantwortet 30 Jul '17, 17:26 esdd Ja, erstmal sehr gut, wenn auch komplizierter, als ich dachte (trotz gleicher Abstände). Danke dafür! Mir ist aufgefallen, dass häufig gleiche Abstände verwendet werden. Besser sind vermutlich verschiedene Abstände. Etwa: Wobei es sicher schöner wäre, wenn die Trapeze der größe nach angeordnet werden.
(02 Aug '17, 19:51)
cis
|
Dein Beispieldiagramm ist unwissenschaftlich und unredlich. Es erweckt den Eindruck, dass die Zahlen ein gleichförmiges Verhältnis zu einander haben.
Mit verschieden hohen Streifen, so dass die Flächen tatsächliche Relationen widerspiegeln, könnte es ja wieder sachlich sein. Immerhin keine 3d-Perspektive. :-)
@stefan Also auch dann ist eine derartige Darstellung nicht gut. Kein Mensch kann derartige Flächen korrekt abschätzen und vergleichen. Da wird Deko über Inhalt gestellt.
Gar nicht so einfach, Pyramidendiagramme richtig/sinnvoll zu dimensionieren... Vll. finde ich hier noch eine Lösung: http://matheplanet.com/matheplanet/nuke/html/viewtopic.php?topic=230261&start=0&lps=1677322#v1677322
An sich finde ich das Eingangsbeispiel gar nicht mal so schlecht, da zumindest die Werte nach oben in absteigender Größe angeordnet sind.
An sich müsste man das Ternäre Diagramm aus
pgfplots
zweckentfremden können.