spark: A LaTeX Sparkline Package
spark is a LaTeX package for generating sparklines. It is based on the pstricks package and can only be used with standard (DVI) LaTeX. There is a similar package for PDFLaTeX called sparklines, written by Andreas Löffler.
Sparklines, as described by Edward Tufte, are compact word-like graphics which summarize a potentially large series of data. In many cases quick visual inspection of a sparkline can be more effective than reading numbers in a table.
Usage
There is no official documentation yet, but the fastest way to learn to use
spark is probably to look at a few examples. Simply put the spark.sty
file
in the same directory as your LaTeX document and add \usepackage{spark}
to
the top of the file.
In the image above, the first continuous sparkline was generated by:
\sparkalldots
\sparkscale=0.15pt
\sparkhskip=1
\sparkymin=1225pt
\lspark{1302.15, 1295.29, 1293.97, 1292.39, 1291.40, 1289.82,
1294.44, 1295.51, 1293.57, 1292.71, 1285.27, 1268.19, 1266.67,
1262.08, 1261.30, 1264.73, 1268.37, 1273.00, 1273.82, 1271.25,
1270.73, 1265.71, 1274.31, 1263.15, 1261.92, 1261.94, 1257.19,
1249.13, 1236.74, 1224.54, 1231.49, 1228.45, 1241.43, 1257.29,
1259.65, 1264.46, 1263.13, 1270.58, 1265.91, 1270.06, 1270.20,
1245.94, 1237.59, 1238.94, 1243.68, 1241.43, 1241.53, 1240.09,
1238.87, 1237.17, 1246.33, 1230.01, 1219.29, 1222.52, 1236.43,
1250.03, 1235.18, 1255.77, 1254.46, 1264.66, 1280.22, 1269.19,
1259.38, 1259.87}
The \sparkalldots
directive tells the package to render dots at the
beginning, end, minimum, and maximim. \sparkscale
is the ratio of points to
data units, the \sparkymin
option specifies the y-axis value that will be
aligned with the bottom of the line of text. The data here are all above
1225, so that used as the y-axis offset.
The first bar-sparkline was rendered using:
\sparklinewidth=0.2pt
\sparkhskip=4
\sparkscale=125pt
\sparkunit=0.5pt
\sparkymin=0pt
\dspark{0.007, 0.036, 0.025, 0.083, 0.031, 0.08, 0.075, 0.081,
0.03, 0.076, 0.076, 0.09, 0.081, 0.085, 0.126, 0.018}
Note that the options only need to be specified once if all the data have the same scale. The data in the above two examples are of very different magnitudes, requiring different scaling.
You can create a PDF file as usual using latex
, dvips
, and ps2pdf
. For
example, the file spark.pdf
below was created as follows:
$ latex spark.tex
$ dvips -o spark.ps spark.dvi
$ ps2pdf spark.ps spark.pdf