Pyramidendiagramm (Beispiel):

alt text

Könnte man automatisch Farben zuordnen? Bzw. wahlweise manuell?

So geht es schonmal nicht:

alt text

Ö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's gravatar image

cis
9.5k93459491
Akzeptiert-Rate: 29%

bearbeitet 29 Jul '17, 19:51

2

Dein Beispieldiagramm ist unwissenschaftlich und unredlich. Es erweckt den Eindruck, dass die Zahlen ein gleichförmiges Verhältnis zu einander haben.

(31 Jul '17, 10:48) Ulrike Fischer

Mit verschieden hohen Streifen, so dass die Flächen tatsächliche Relationen widerspiegeln, könnte es ja wieder sachlich sein. Immerhin keine 3d-Perspektive. :-)

(02 Aug '17, 23:46) stefan ♦♦
1

@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.

(03 Aug '17, 19:19) Ulrike Fischer

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.

(03 Aug '17, 21:43) cis

An sich müsste man das Ternäre Diagramm aus pgfplots zweckentfremden können.

(06 Aug '17, 17:37) cis

Für die Füllung der Pyramide kannst Du path picture verwenden.

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}

alt text

Permanenter link

beantwortet 30 Jul '17, 17:26

esdd's gravatar image

esdd
17.8k284257
Akzeptiert-Rate: 62%

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:

alt text

Wobei es sicher schöner wäre, wenn die Trapeze der größe nach angeordnet werden.

(02 Aug '17, 19:51) cis
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

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ügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×730
×27

gestellte Frage: 29 Jul '17, 19:50

Frage wurde gesehen: 6,157 Mal

zuletzt geändert: 06 Aug '17, 17:37