Legende beim Kreisdiagramm oberhalb platzieren

Tabellen und Grafiken erstellen und anordnen


esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag von esdd »

Wenn ich Dich richtig verstanden habe, möchtest Du etwas wie

Bild
\documentclass{scrbook}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{subcaption}
\usepackage{tikz}

\definecolor{Grun}{RGB}{155 187 89}
\definecolor{Rot}{RGB}{192 80 77}
\definecolor{Blau}{RGB}{79 129 189}
\definecolor{Lila}{RGB}{128 100 162}

\newcommand*\firststartangle{0}
\newcommand*\radius{3}

\makeatletter
\newcommand\@piechart[1]{%
  \begin{tikzpicture}
    \foreach [
      remember=\endangle as \startangle (initially \firststartangle),
      evaluate={\endangle=\startangle+3.6*\percent},
      evaluate={\midangle=.5*(\startangle+\endangle)}
    ] \percent/\name/\color in {#1}{
      \draw[fill={\color!80},draw={\color}]
          (0,0) -- (\startangle:\radius) arc (\startangle:\endangle:\radius) -- cycle;
      \node[pin=\midangle:\percent\%] at (\midangle:\radius) {};
    };
  \end{tikzpicture}%
}
\newcommand*\piechart[1]{\expandafter\@piechart\expandafter{#1}}
\newcommand\@piechartlegend[1]{%
  \foreach \percent/\name/\color in {#1}{
    \begin{tikzpicture}[baseline]
      \node[fill=\color,minimum size=1.5ex,anchor=west](color){};
      \node[anchor=west] at (color.east) {\strut\name};
    \end{tikzpicture}
  }%
}
\newcommand*\piechartlegend[1]{\expandafter\@piechartlegend\expandafter{#1}}
\makeatother

\begin{document}
\begin{center}
  \begin{minipage}{\linewidth}
    \captionsetup{type=figure}
    \centering
    \renewcommand*\radius{2}
    \newcommand\firstpiechartlist{
        58.91/Haupttätigkeiten/Rot,
        22.99/Nebentätigkeiten/Grun,
        7.50/störungsbedingte Unterbrechungen/Blau,
        10.60/persönliche Unterbrechungen/Lila%
    }
    \newcommand\secondpiechartlist{
      21.2/X/yellow,
      40.7/XXX/purple,
      39.1/+++/orange%
    }
    \begin{flushleft}
      \piechartlegend{\firstpiechartlist}%
      \piechartlegend{\secondpiechartlist}
    \end{flushleft}
    \begin{subfigure}[b]{0.48\textwidth}
      \centering
      \piechart{\firstpiechartlist}
    \end{subfigure}%
    \hfill
    \begin{subfigure}[b]{0.48\textwidth}
      \centering
      \piechart{\secondpiechartlist}
    \end{subfigure}
  \end{minipage}
\end{center}
\end{document}
Die Kommentarzeichen (%) sind in dem Beispiel an allen Stellen notwendig. Sie verhindern an der jeweiligen Stelle, dass durch das Zeilenende ein Leerzeichen eingefügt wird.

Und übrigens ist legend columns=-1 eine Option von pgfplots, die Du nur für eine axis Umgebung verwenden kannst.
Dateianhänge
gl_kreisdiagrammlegende.png
gl_kreisdiagrammlegende.png (19.87 KiB) 2762 mal betrachtet
Zuletzt geändert von esdd am So 3. Jul 2016, 01:14, insgesamt 1-mal geändert.

pauabaer
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 63
Registriert: Sa 19. Sep 2015, 00:17

Beitrag von pauabaer »

Kann ich hier dann auch eine subfigure-Umgebung einfügen?

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag von esdd »

pauabaer hat geschrieben:Kann ich hier dann auch eine subfigure-Umgebung einfügen?
In meinem Beispiel sind doch gleich zwei subfigure-Umgebungen??

Falls Du die Beschriftungen der Teilabbildungen und der Gesamtabbildung vermisst - die fehlten in Deinem MWE, weshalb ich mir jetzt auch keine ausgedacht habe. Sie würden sich aber ganz normal mit \caption Befehlen einfügen lassen.

Aus Deinem [!h] für die table Umgebung habe ich allerdings geschlussfolgert, dass die Abbildung gar nicht gleiten soll und deshalb die Gleitumgebung ersetzt.

pauabaer
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 63
Registriert: Sa 19. Sep 2015, 00:17

Beitrag von pauabaer »

Entschuldige. War gestern schon zu spät. Es sind ja ganz deutlich die subfigures zu sehen :) :roll:

Werde mich mit deinem Vorschlag weiter beschäftigen. Noch steige ich nicht ganz hinter den Code.

Aber vielen Dank! Die Ausgabe ist so wie ich mir das vorgestellt habe!

pauabaer
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 63
Registriert: Sa 19. Sep 2015, 00:17

Beitrag von pauabaer »

Hallo esdd,

hab mich nochmal mit deinem Kreisdiagramm beschäftigt. Dazu habe ich noch zwei Fragen.
\documentclass{scrbook} 
\usepackage[T1]{fontenc} 
\usepackage[utf8]{inputenc} 
\usepackage{subcaption} 
\usepackage{tikz} 

\definecolor{Orange}{RGB}{247 150 70} 
\definecolor{Grun}{RGB}{155 187 89}
\definecolor{Lila}{RGB}{115 38 218}
\definecolor{HBlau}{RGB}{75 172 198}
\definecolor{Pink}{RGB}{255 0 128}
\definecolor{Rot}{RGB}{192 80 77}
\definecolor{Blau}{RGB}{79 129 189}
\definecolor{Lila}{RGB}{128 100 162}

\newcommand*\firststartangle{0} 
\newcommand*\radius{3} 

\makeatletter 
\newcommand\@piechart[1]{% 
  \begin{tikzpicture} 
    \foreach [ 
      remember=\endangle as \startangle (initially \firststartangle), 
      evaluate={\endangle=\startangle+3.6*\percent}, 
      evaluate={\midangle=.5*(\startangle+\endangle)} 
    ] \percent/\name/\color in {#1}{ 
      \draw[fill={\color!80},draw={\color}] 
          (0,0) -- (\startangle:\radius) arc (\startangle:\endangle:\radius) -- cycle; 
      \node[pin=\midangle:\percent\%] at (\midangle:\radius) {}; 
    }; 
  \end{tikzpicture}% 
} 
\newcommand*\piechart[1]{\expandafter\@piechart\expandafter{#1}} 
\newcommand\@piechartlegend[1]{% 
  \foreach \percent/\name/\color in {#1}{ 
    \begin{tikzpicture}[baseline] 
      \node[fill=\color,minimum size=1.5ex,anchor=west](color){}; 
      \node[anchor=west] at (color.east) {\strut\name}; 
    \end{tikzpicture} 
  }% 
} 
\newcommand*\piechartlegend[1]{\expandafter\@piechartlegend\expandafter{#1}} 
\makeatother 

\begin{document} 
\begin{center} 
  \begin{minipage}{\linewidth} 
    \captionsetup{type=figure} 
    \centering 
    \renewcommand*\radius{2} 
    \newcommand\firstpiechartlist{ 
        58.91/Haupttätigkeiten/Orange, 
        22.99/Nebentätigkeiten/Grun, 
        7.50/störungsbedingte Unterbrechungen/HBlau, 
        10.60/persönliche Unterbrechungen/Pink% 
    } 
    \newcommand\secondpiechartlist{ 
      58.91/Haupttätigkeiten/Orange, 
      22.99/Nebentätigkeiten/Grun, 
      7.50/störungsbedingte Unterbrechungen/HBlau, 
      10.60/persönliche Unterbrechungen/Pink%
    } 
    \begin{flushleft} 
      \piechartlegend{\firstpiechartlist}% 
      %\piechartlegend{\secondpiechartlist} 
    \end{flushleft} 
    \begin{subfigure}[b]{0.48\textwidth} 
      \centering 
      \piechart{\firstpiechartlist} 
    \end{subfigure}% 
    \caption[Testi]{Mesti}
    \hfill 
    \begin{subfigure}[b]{0.48\textwidth} 
      \centering 
      \piechart{\secondpiechartlist} 
    \end{subfigure} 
    \caption[Testi]{Mesti}
  \end{minipage} 
\end{center} 
\end{document}
An welcher Stelle kann ich die Schriftgröße der Legende verändern?
Wenn ich eine Caption einfüge, dann stehen die beiden Diagramme untereinander. Muss ich sie skalieren oder wie schaffe ich es beide nebeneinander mit Caption zu platzieren? Und wo wird die übergeordnete Bildunterschrift platziert?

Gruß
pauabaer

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

Beitrag von Bartman »

\documentclass{scrbook} 

\usepackage[T1]{fontenc} 
\usepackage[utf8]{inputenc} 
\usepackage{subcaption} 
\usepackage{tikz} 

\definecolor{Orange}{RGB}{247 150 70} 
\definecolor{Grun}{RGB}{155 187 89}
\definecolor{Lila}{RGB}{115 38 218}
\definecolor{HBlau}{RGB}{75 172 198}
\definecolor{Pink}{RGB}{255 0 128}
\definecolor{Rot}{RGB}{192 80 77}
\definecolor{Blau}{RGB}{79 129 189}
\definecolor{Lila}{RGB}{128 100 162}

\newcommand*\firststartangle{0} 
\newcommand*\radius{3} 

\makeatletter 
\newcommand\@piechart[1]{% 
  \begin{tikzpicture} 
    \foreach [ 
      remember=\endangle as \startangle (initially \firststartangle), 
      evaluate={\endangle=\startangle+3.6*\percent}, 
      evaluate={\midangle=.5*(\startangle+\endangle)} 
    ] \percent/\name/\color in {#1}{ 
      \draw[fill={\color!80},draw={\color}] 
          (0,0) -- (\startangle:\radius) arc (\startangle:\endangle:\radius) -- cycle; 
      \node[pin=\midangle:\percent\,\%] at (\midangle:\radius) {}; 
    }; 
  \end{tikzpicture}% 
} 
\newcommand*\piechart[1]{\expandafter\@piechart\expandafter{#1}} 
\newcommand\@piechartlegend[1]{% 
  \tikzset{font=\small}% <- hinzugefügt
  \foreach \percent/\name/\color in {#1}{ 
    \begin{tikzpicture}[baseline] 
      \node[fill=\color,minimum size=1.5ex,anchor=west](color){}; 
      \node[anchor=west] at (color.east) {\strut\name}; 
    \end{tikzpicture} 
  }% 
} 
\newcommand*\piechartlegend[1]{\expandafter\@piechartlegend\expandafter{#1}} 
\makeatother 

\begin{document} 
\begin{center} 
  \begin{minipage}{\linewidth} 
    \captionsetup{type=figure} 
    \centering 
    \renewcommand*\radius{2} 
    \newcommand\firstpiechartlist{ 
        58.91/Haupttätigkeiten/Orange, 
        22.99/Nebentätigkeiten/Grun, 
        7.50/störungsbedingte Unterbrechungen/HBlau, 
        10.60/persönliche Unterbrechungen/Pink% 
    } 
    \newcommand\secondpiechartlist{ 
      58.91/Haupttätigkeiten/Orange, 
      22.99/Nebentätigkeiten/Grun, 
      7.50/störungsbedingte Unterbrechungen/HBlau, 
      10.60/persönliche Unterbrechungen/Pink%
    } 
    \begin{flushleft} 
      \piechartlegend{\firstpiechartlist}% 
      %\piechartlegend{\secondpiechartlist} 
    \end{flushleft} 
    \begin{subfigure}[b]{0.48\textwidth} 
      \centering 
      \piechart{\firstpiechartlist} 
      \caption[Testi]{Mesti}% <- verschoben
    \end{subfigure}% 
    \hfill 
    \begin{subfigure}[b]{0.48\textwidth} 
      \centering 
      \piechart{\secondpiechartlist} 
      \caption[Testi]{Mesti}% <- verschoben
    \end{subfigure} 
  \end{minipage} 
\end{center} 
\end{document}

pauabaer
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 63
Registriert: Sa 19. Sep 2015, 00:17

Beitrag von pauabaer »

Besten Dank! :D

Letzte Rückfrage:
\documentclass{scrbook} 

\usepackage[T1]{fontenc} 
\usepackage[utf8]{inputenc} 
\usepackage{subcaption} 
\usepackage{tikz} 

\definecolor{Orange}{RGB}{247 150 70} 
\definecolor{Grun}{RGB}{155 187 89} 
\definecolor{Lila}{RGB}{115 38 218} 
\definecolor{HBlau}{RGB}{75 172 198} 
\definecolor{Pink}{RGB}{255 0 128} 
\definecolor{Rot}{RGB}{192 80 77} 
\definecolor{Blau}{RGB}{79 129 189} 
\definecolor{Lila}{RGB}{128 100 162} 

\newcommand*\firststartangle{0} 
\newcommand*\radius{3} 

\makeatletter 
\newcommand\@piechart[1]{% 
  \begin{tikzpicture} 
    \foreach [ 
      remember=\endangle as \startangle (initially \firststartangle), 
      evaluate={\endangle=\startangle+3.6*\percent}, 
      evaluate={\midangle=.5*(\startangle+\endangle)} 
    ] \percent/\name/\color in {#1}{ 
      \draw[fill={\color!80},draw={\color}] 
          (0,0) -- (\startangle:\radius) arc (\startangle:\endangle:\radius) -- cycle; 
      \node[pin=\midangle:\percent\,\%] at (\midangle:\radius) {}; 
    }; 
  \end{tikzpicture}% 
} 
\newcommand*\piechart[1]{\expandafter\@piechart\expandafter{#1}} 
\newcommand\@piechartlegend[1]{% 
  \tikzset{font=\small, anchor=north east}% <- hinzugefügt 
  \foreach \percent/\name/\color in {#1}{ 
    \begin{tikzpicture}[baseline] 
      \node[fill=\color,minimum size=1.5ex,anchor=west](color){}; 
      \node[anchor=west] at (color.east) {\strut\name}; 
    \end{tikzpicture} 
  }% 
} 
\newcommand*\piechartlegend[1]{\expandafter\@piechartlegend\expandafter{#1}} 
\makeatother 

\begin{document} 
\begin{center} 
  \begin{minipage}{\linewidth} 
    \captionsetup{type=figure} 
    \centering 
    \renewcommand*\radius{2} 
    \newcommand\firstpiechartlist{ 
        77.33/Transporte/Blau, 
        3.17/Betonage/Rot,
        19.50/Brachzeiten/Grun,
        0.00/Sonderfälle/Lila%
    } 
    \newcommand\secondpiechartlist{ 
      55.24/Transporte/Blau,
      5.59/Betonage/Rot,
      38.64/Brachzeiten/Grun,
      0.52/Sonderfälle/Lila% 
    } 
    \begin{flushleft} 
      \piechartlegend{\firstpiechartlist}% 
      %\piechartlegend{\secondpiechartlist} 
    \end{flushleft} 
    \begin{subfigure}[b]{0.48\textwidth} 
      \centering 
      \piechart{\firstpiechartlist} 
      \caption{Auswertung K1}% <- verschoben 
    \end{subfigure}% 
    \hfill 
    \begin{subfigure}[b]{0.48\textwidth} 
      \centering 
      \piechart{\secondpiechartlist} 
      \caption{Auswertung K2}% <- verschoben 
    \end{subfigure} 
  \end{minipage} 
\end{center} 
\end{document}
Wie kann ich die Legende mittig ausrichten?

Gruß
pauabaer

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

Beitrag von Bartman »

pauabaer hat geschrieben:Wie kann ich die Legende mittig ausrichten?
Ersetze die flushleft-Umgebung durch eine center-Umgebung.

@Alle

Da die Beschriftung in deutscher Sprache stattfindet, wüßte ich gerne, wie die Dezimaltrennzeichen der Prozentzahlen zu einem Komma geändert werden können. Ich vermutete eine mögliche Lösung mit
\pgfkeys{/pgf/number format/.cd, use comma}
in der Präambel, was aber an der Darstellung nichts änderte.

pauabaer
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 63
Registriert: Sa 19. Sep 2015, 00:17

Beitrag von pauabaer »

Dank dir Bartman!

Auf deine Frage habe ich keine Antwort.. Wie soll ich den Status anpassen?

Antworten