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, 13:50

cis's gravatar image

cis
5.9k10109202
Akzeptiert: 69%

bearbeitet 29 Jul, 13: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, 04: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: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, 13: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, 15:43) cis

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

(06 Aug, 11: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, 11:26

esdd's gravatar image

esdd
15.3k53653

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, 13:51) cis
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

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:

×531
×19

Frage gestellt: 29 Jul, 13:50

Frage wurde angeschaut: 221 Mal

Zuletzt aktualisiert: 06 Aug, 11:37