Seite 1 von 1

Bedingte Formatierung Tabelle Latex

Verfasst: Fr 17. Jun 2016, 16:13
von StefanStat
Ich versuche gerade eine bedingte Formatierung aus einer Exceltabelle in LateX nachzubauen. Leider habe ich noch keine passende Lösung gefunden.

Mir ist es vor allem wichitg, dass in der Tabelle Balken enthalten sind. Nur eine farbliche Differenzierung reicht nicht.

wäre super wenn mir jemand weiterhelfen könnte

Verfasst: So 19. Jun 2016, 17:57
von Bartman
Vielleicht hilft Dir der folgende Thread weiter: Is there a charts package for LaTeX?

Verfasst: So 19. Jun 2016, 20:48
von StefanStat
Danke für deine Antwort. Ich habe es zum Teil schon hinbekommen. Ich würde jedoch gerne das negative Balken nach links zeigen. Also im Prinziep exakt so wie in meiner Grafik aus dem ersten Post.
\documentclass{article}
\usepackage[table]{xcolor}
\usepackage[nomessages]{fp}
\newcommand{\maxnum}{0.6}
\newlength{\maxlen}

\newcommand{\databar}[2][green!25]{%
  \settowidth{\maxlen}{\maxnum}%
  \addtolength{\maxlen}{\tabcolsep}%
  \FPeval\result{round(#2/\maxnum:4)}%
  \rlap{\color{green!25}\hspace*{-.5\tabcolsep}\rule[-.05\ht\strutbox]{\result\maxlen}{.95\ht\strutbox}}%
  \makebox[\dimexpr\maxlen-\tabcolsep][r]{#2}%
}

\newcommand{\maxnumneg}{-0.6}

\newcommand{\databarneg}[2][red!25]{%
  \settowidth{\maxlen}{\maxnumneg}%
  \addtolength{\maxlen}{\tabcolsep}%
  \FPeval\result{round(#2/\maxnumneg:4)}%
  \rlap{\color{red!25}\hspace*{-.5\tabcolsep}\rule[-.05\ht\strutbox]{\result\maxlen}{.95\ht\strutbox}}%
  \makebox[\dimexpr\maxlen-\tabcolsep][r]{#2}%
}

\begin{document}

\begin{table}[!htb]
\centering
\small

\begin{tabular}{|c|c|c|c|c|c|}
\hline 
\multicolumn{6}{|c|}{}\tabularnewline
\hline 
x \textbackslash{} y & 40 & 50 & 60 & 70 & 80\tabularnewline
\hline 
6.51 & \databar{0.53} & \databar{0.48} & \databar{0.43} & \databar{0.39} & \databar{0.34}\tabularnewline
\hline 
7.00 & \databar{0.35} & \databar{0.31} & \databar{0.26} & \databar{0.21} & \databar{0.17}\tabularnewline
\hline 
7.50 & \databar{0.20} & \databar{0.15} & \databar{0.11} & \databar{0.06} & \databar{0.01}\tabularnewline
\hline 
8.00 & \databar{0.08} & \databar{0.04} & \databarneg{-0.01} & \databarneg{-0.06} & \databarneg{-0.11}\tabularnewline
\hline 
8.50 & \databar{0.00} & \databarneg{-0.05} & \databarneg{-0.09} & \databarneg{-0.14} & \databarneg{-0.19}\tabularnewline
\hline 
9.00 & \databarneg{-0.03} & \databarneg{-0.07} & \databarneg{-0.12} & \databarneg{-0.17} & \databarneg{-0.22}\tabularnewline
\hline 
9.50 & \databar{0.02} & \databarneg{-0.03} & \databarneg{-0.08} & \databarneg{-0.12} & \databarneg{-0.17}\tabularnewline
\hline 
10.00 & \databar{0.12} & \databar{0.07} & \databar{0.02} & \databarneg{-0.02} & \databarneg{-0.07}\tabularnewline
\hline 
10.50 & \databar{0.26} & \databar{0.21} & \databar{0.16} & \databar{0.12} & \databar{0.07}\tabularnewline
\hline 
11.00 & \databar{0.41} & \databar{0.36} & \databar{0.31} & \databar{0.27} & \databar{0.22}\tabularnewline
\hline 
11.50 & \databar{0.56} & \databar{0.51} & \databar{0.46} & \databar{0.41} & \databar{0.37}\tabularnewline
\hline 
12.00 & \databar{0.69} & \databar{0.64} & \databar{0.60} & \databar{0.55} & \databar{0.50}\tabularnewline
\hline 
\end{tabular}
\label{gam_diabetologe}
\end{table}
\end{document}

Verfasst: Di 21. Jun 2016, 19:10
von Bartman
Dein Beispiel ist fast lauffähig. Füge bitte am Ende noch folgende Zeile ein:
\end{document}
Mit dem Paket fp kenne ich mich leider nicht aus.