PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kleine Herausforderung für tikZ/pgfplot/R-Experten



alexraasch
09-11-2009, 16:33
Hallo,

ich möchte einen Bericht erzeugen, der viele Diagramme enthält, die so aussehen wie das Bild im Anhang. Das Beispiel wurde mit folgendem Code erzeugt:


\documentclass{scrartcl}

\usepackage[utf8]{inputenc}

\usepackage{tikz, pgfplots}

\definecolor{gruen3}{cmyk}{0.49, 0.00, 0.96, 0.40}
\definecolor{rot2}{cmyk}{0.00, 1.00, 1.00, 0.20}

\begin{document}
\tikzstyle{every pin}=[font=\footnotesize, pin distance=5mm, draw=black, fill=white]
\tikzstyle{every label}=[font=\footnotesize, label distance=0mm, inner sep=1mm]
\pgfplotsset{axis on top,tick align=outside,
try min ticks=5,
every axis/.append style={bar width=10pt},
every axis legend/.append style={font=\small},
every tick label/.append style={font=\small},
every non boxed x axis/.style={x axis line style={-}},
every non boxed y axis/.style={y axis line style={-}},
every tick/.style={very thin, black}}
\pgfplotsset{JahrIOQuoteAbsolut/.style={height=5cm, width=10cm,
title={Jahresüberblick Ausschuss},
axis x line=bottom, xmin=1, xmax=12, enlarge x limits=0.05, ylabel={Stck},
xtick={1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}, xticklabels={Jan, Feb, Mrz, Apr, Mai, Jun, Jul, Aug, Sep, Okt, Nov, Dez},
axis y line=left, ymin=0, ymax=#1, ybar stacked, bar width=4mm}
}% pgfplotsset
\begin{center}
\begin{tikzpicture}[baseline]
\begin{axis}[JahrIOQuoteAbsolut=300,ytickmin=0,ymin=-50]
\addplot[draw=none,fill=gruen3] coordinates {
(01, 100) (02, 110) (03, 120) (04, 100) (05, 110) (06, 120) (07, 140) (08, 120) (09, 100) (10, 80)};
\addplot[draw=none,fill=rot2] coordinates {
(01, 90) (02, 80) (03, 70) (04, 80) (05, 70) (06, 60) (07, 100) (08, 100) (09, 110) (10, 120)};
\node[coordinate,label={[color=gruen3]below:{100}}] at (axis cs:01, 0) {};
\node[coordinate,label={[color=gruen3]below:{110}}] at (axis cs:02, 0) {};
\node[coordinate,label={[color=gruen3]below:{120}}] at (axis cs:03, 0) {};
\node[coordinate,label={[color=gruen3]below:{100}}] at (axis cs:04, 0) {};
\node[coordinate,label={[color=gruen3]below:{110}}] at (axis cs:05, 0) {};
\node[coordinate,label={[color=gruen3]below:{120}}] at (axis cs:06, 0) {};
\node[coordinate,label={[color=gruen3]below:{140}}] at (axis cs:07, 0) {};
\node[coordinate,label={[color=gruen3]below:{120}}] at (axis cs:08, 0) {};
\node[coordinate,label={[color=gruen3]below:{100}}] at (axis cs:09, 0) {};
\node[coordinate,label={[color=gruen3]below:{ 80}}] at (axis cs:10, 0) {};
%
\node[coordinate,label={[color=rot2]above:{ 90}}] at (axis cs:01,190) {};
\node[coordinate,label={[color=rot2]above:{ 80}}] at (axis cs:02,190) {};
\node[coordinate,label={[color=rot2]above:{ 70}}] at (axis cs:03,190) {};
\node[coordinate,label={[color=rot2]above:{ 80}}] at (axis cs:04,180) {};
\node[coordinate,label={[color=rot2]above:{ 70}}] at (axis cs:05,180) {};
\node[coordinate,label={[color=rot2]above:{ 60}}] at (axis cs:06,180) {};
\node[coordinate,label={[color=rot2]above:{100}}] at (axis cs:07,240) {};
\node[coordinate,label={[color=rot2]above:{100}}] at (axis cs:08,220) {};
\node[coordinate,label={[color=rot2]above:{110}}] at (axis cs:09,210) {};
\node[coordinate,label={[color=rot2]above:{120}}] at (axis cs:10,200) {};
\end{axis}
\end{tikzpicture}
\end{center}
\end{document}


Der Bericht soll 30-40 dieser Diagramme enthalten. Deswegen möchte ich die Daten aus einer CSV-Datei direkt einlesen und am Quelltext nichts mehr ändern müssen.

Die besondere Schwierigkeit besteht also im automatischen Erzeugen der Labels. Hat jemand eine spontane Idee, wie das gehen könnte mit tikZ/R o.ä.?