Ich versuche mich gerade an einem Kreisdiagramm, um Wahlergebnisse darzustellen. (Wie ordne ich in einem Kreisdiagramm einzelnen Abschnitten feste Farben zu?). Die Wahlergebnisse möchte ich auch als Balkendiagramm ausgeben. Ist es möglich mit einem Datensatz zwei verschiedene Ausgaben (Kreis- und Balkendiagramme) erreichen oder funktioniert das grds. nicht? gefragt 10 Jan '16, 15:15 Tischa |
Ich speichere den Datensatz einfach im Makro Open in Online-Editor
\documentclass[tikz]{standalone} \usepackage[T1]{fontenc} \usepackage[utf8]{inputenc} \definecolor{deep brown}{RGB}{125,91,49} \definecolor{dark blue}{RGB}{0,0,181} \definecolor{dark green}{RGB}{72,142,65} \definecolor{crimson red}{RGB}{198,18,24} \definecolor{light red}{RGB}{255,51,0} \def\angle{0} \def\radius{3} \newcommand\square[1]{% \tikz\filldraw[color=#1] (0,0) rectangle (1.5ex,1.5ex);% } \newcount\ind \begin{document} \newcommand\data{ 14.8/Framsóknarflokkur/deep brown, 23.7/Sjálfstæðisflokkur/dark blue, 7.2/Borgarahreyfingin/blue, 0.6/Lýðræðishreyfingin/light red, 29.8/Samfylkingin/crimson red, 21.7/Vinstrihreyfingin--grænt framboð/dark green, 2.2/Sonstige/gray% } \begin{tikzpicture} \begin{scope} \global\ind=-1 \foreach \percent/\name/\color in \data { \ifx\percent\empty\else % If \percent is empty, do nothing \global\advance\ind by 1 % Advance list index % Draw angle and set labels \filldraw[color=\color] (0,0) -- (\angle:\radius) arc (\angle:\angle+\percent*3.6:\radius) -- cycle; \node[anchor=base west] at (\radius+2,1.5-.5*\ind) {\square{\color} \name}; \node[pin=\angle+0.5*\percent*3.6:\percent\%] at (\angle+0.5*\percent*3.6:\radius) {}; \pgfmathparse{\angle+\percent*3.6} % Advance angle \xdef\angle{\pgfmathresult} % and store in \angle \fi }; \end{scope} \pgfmathsetmacro\barmaxheight{5} \begin{scope}[shift={(-2,-4-\barmaxheight)}] \draw[<->] (0,\barmaxheight+0.5) |- (8,0); \draw (2pt,\barmaxheight) -- (-2pt,\barmaxheight) node[left] {100\%}; \draw (2pt,.5*\barmaxheight) -- (-2pt,.5*\barmaxheight) node[left] {50\%}; \global\ind=-1 \foreach \percent/\name/\color in \data { \ifx\percent\empty\else % If \percent is empty, do nothing \global\advance\ind by 1 % Advance list index % Draw angle and set labels \filldraw[color=\color] (\ind+.7,0) rectangle (\ind+1.2,\barmaxheight/100*\percent); \node[above] at (\ind+1,\barmaxheight/100*\percent) {\percent\%}; \node[rotate=45,anchor=base east,yshift=-1ex] at (\ind+1,0) {\name}; \fi }; \end{scope} \end{tikzpicture} \end{document} beantwortet 10 Jan '16, 16:03 Henri Genial. Vielen Dank.:-D
(10 Jan '16, 17:12)
Tischa
Moin, ich hab in meiner Hauptdatei mehrere Wahlergebnisse, die ich mit Wahlergebnis2009.tex, Wahlergebnis2013.tex einbinden möchte. Leider erhalte ich dann immer die Fehlermeldung: ! LaTeX Error: Command data already defined. Or name end... illegal, see p.192 of the manual. ... l.37 } ?
! Emergency stop.
... l.37 }
(12 Dez '17, 19:48)
Tischa
@Tischa: Die Fehlermeldung sagt doch alles: Du versuchst
(12 Dez '17, 20:17)
saputello
|