
Ich möchte die Datenreihe für eine Sparkline in Form eines Makros – oder einer Alternative – definieren, anstatt sie explizit in der sparkline
Umgebung selbst festzulegen. Meine bisherigen Versuche sind fehlgeschlagen. Als MWE würde Folgendes genügen:
\documentclass[12pt]{memoir}
\usepackage{xcolor,tikz,sparklines}
\begin{document}
\xdef\SparkMacro{0 1 0.5 1.5 1 0.25}
\renewcommand{\sparklineheight}{1.75}
\begin{sparkline}{3}
\sparkrectangle 0 1.75
\spark \SparkMacro\ / % doesn't work
% \spark 0 1 0.5 1.5 1 0.25 /% does work
\end{sparkline}
\end{document}
Wie kann ich diese Daten an die Umgebung übergeben, sparkline
ohne sie explizit eingeben (oder kopieren und einfügen) zu müssen?
Antwort1
Sie müssen \expandafter
die Daten erweitern, bevor \spark
sie angezeigt werden. Außerdem benötigen Sie ein echtes Leerzeichen, nicht \
am Ende. Am einfachsten ist es, sicherzustellen, dass Ihr Makro mit einem Leerzeichen endet.
\documentclass[12pt]{memoir}
\usepackage{xcolor,tikz,sparklines}
\begin{document}
\xdef\SparkMacro{0 1 0.5 1.5 1 0.25 }
\renewcommand{\sparklineheight}{1.75}
\begin{sparkline}{3}
\sparkrectangle 0 1.75
\expandafter\spark \SparkMacro / % doesn't work
%\spark 0 1 0.5 1.5 1 0.25 /% does work
\end{sparkline}
\end{document}
Antwort2
InGibt es ein Paket, das Grafiken im Stil von Ed Tufte ermöglicht?Ich habe eine Lösung für Sparklines erstellt, die nicht auf dem Sparkline-Paket, sondern auf pgfplots basiert.
Der Vorteil ist: Sie können die Eingabe mittels numerischer Tabellen vornehmen, eine numerische Tabelle bereitstellen und die Daten basierend auf mathematischen Ausdrücken in diese Tabellen darstellen oder direkt einen mathematischen Ausdruck bereitstellen.
Die erwähnte Lösung bietet Balkendiagramme, Liniendiagramme und Streudiagramme und kann außerdem die minimalen/maximalen Koordinaten automatisch bestimmen.
SehenGibt es ein Paket, das Grafiken im Stil von Ed Tufte ermöglicht?für Details