
Eu gostaria que a série de dados de um minigráfico fosse definida em termos de uma macro - ou alguma alternativa - em vez de defini-la explicitamente no sparkline
próprio ambiente. Minhas tentativas até agora falharam. Como um MWE, o seguinte faria:
\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}
Como eu poderia passar esses dados para o ambiente sparkline
sem precisar digitá-los (ou copiá-los e colá-los) explicitamente?
Responder1
Você precisa \expandafter
expandir os dados antes de \spark
vê-los. Além disso, você precisa de um espaço real, não \
no final. O mais fácil é garantir que sua macro termine com espaço.
\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}
Responder2
EmExiste um pacote que fornece gráficos no estilo de Ed Tufte?Criei uma solução para minigráficos que não é baseada no pacote minigráfico, mas sim em pgfplots.
A vantagem é: você pode fornecer informações por meio de tabelas numéricas, fornecer uma tabela numérica e plotar dados com base em expressões matemáticas nessas tabelas ou fornecer uma expressão matemática imediatamente.
A solução mencionada apresenta gráficos de barras, gráficos de linhas e gráficos de dispersão, e também pode determinar a coordenada mínima/máxima automaticamente.
VerExiste um pacote que fornece gráficos no estilo de Ed Tufte?para detalhes