\documentclass[]{article} \usepackage{barchart} \usepackage{vmargin} \setmarginsrb { 1.0in} % left margin { 0.6in} % top margin { 1.0in} % right margin { 0.8in} % bottom margin { 20pt} % head height {0.25in} % head sep { 9pt} % foot height { 0.3in} % foot sep \title{\texttt{barchart}: Easy Bar Chart in \LaTeX \medskip\\ \large Version 0.1.0 } \author{Frederik Vanggaard} \date{\today} \begin{document} \maketitle \section{Introduction} \texttt{barchart} is a \LaTeX\space package for creating simple and easy to use bar-chart. The package is inspired by \texttt{bchart} by Tobias Kuhn. \texttt{barchart} provides an easy way to create vertical barcharts using Tikz. \section{Charts} \texttt{barchart} comes with a variety of customization options for both the overall chart and for each individual bar. A simple chart can be done like this: \begin{center} \begin{minipage}[l][][c]{0.45\linewidth} \begin{quote}\small \begin{verbatim} \begin{barchart} \barc{5} \barc{7} \barc{3} \end{barchart} \end{verbatim} \end{quote} \end{minipage} \quad \begin{minipage}[r][][c]{0.45\linewidth} \begin{barchart} \barc{5} \barc{7} \barc{3} \end{barchart} \end{minipage} \end{center} The only arguments that are mandatory is the bar value. The charts can be changed using a few simple options such as \texttt{min}, \texttt{max} and \texttt{step}. \begin{quote}\small \begin{verbatim} \begin{barchart}[min = 0, max = 60, step = 10, height=0.25em] \barc{30} \barc{20} \barc{50} \end{barchart} \end{verbatim} \end{quote} \begin{quote}\small \begin{barchart}[min = 0, max = 60, step = 10, height=0.25em] \barc{30} \barc{20} \barc{50} \end{barchart} \end{quote} \texttt{height} is used to set the height of the whole chart. Omitting a height on charts with large \texttt{max} values will make the chart enormous. \section{Bars} Each bar can be customized to your liking. This can be done using \texttt{color}, \texttt{width} and \texttt{plain}. \texttt{color} changes the color of each bar like: \begin{center} \begin{minipage}[l][][c]{0.45\linewidth} \begin{quote}\small \begin{verbatim} \begin{barchart}[step = 2] \barc[color=yellow!60]{5} \barc[color=orange!60]{7} \barc[color=cyan!60]{3} \end{barchart} \end{verbatim} \end{quote} \end{minipage} \quad \begin{minipage}[r][][c]{0.45\linewidth} \begin{barchart}[step = 2] \barc[color=yellow!60]{5} \barc[color=orange!60]{7} \barc[color=cyan!60]{3} \end{barchart} \end{minipage} \end{center} \texttt{width} changes the width of each bar: \begin{center} \begin{minipage}[l][][c]{0.45\linewidth} \begin{quote}\small \begin{verbatim} \begin{barchart}[step = 2] \barc[width=40pt]{5} \barc[width=30pt]{7} \barc[width=50pt]{3} \barc[width=20pt]{3} \end{barchart} \end{verbatim} \end{quote} \end{minipage} \quad \begin{minipage}[r][][c]{0.45\linewidth} \begin{barchart}[step = 2] \barc[width=40pt]{5} \barc[width=30pt]{7} \barc[width=50pt]{3} \barc[width=20pt]{3} \end{barchart} \end{minipage} \end{center} Using less than \texttt{20pt} is not recommended. Instead of using pre-defined step as the examples have shown so far, \texttt{steps} can be used. \begin{center} \begin{minipage}[l][][c]{0.45\linewidth} \begin{quote}\small \begin{verbatim} \begin{barchart}[steps = {1,3,5,7,10}] \barc{5} \barc{7} \barc{3} \end{barchart} \end{verbatim} \end{quote} \end{minipage} \quad \begin{minipage}[r][][c]{0.45\linewidth} \begin{barchart}[steps = {1,3,5,7,10}] \barc{5} \barc{7} \barc{3} \end{barchart} \end{minipage} \end{center} \texttt{plain} is a boolean which can either be \texttt{true} or \texttt{false} and removes the label on the bar. \begin{center} \begin{minipage}[l][][c]{0.45\linewidth} \begin{quote}\small \begin{verbatim} \begin{barchart} \barc{5} \barc[plain=true]{7} \barc[plain=true]{3} \end{barchart} \end{verbatim} \end{quote} \end{minipage} \quad \begin{minipage}[r][][c]{0.45\linewidth} \begin{barchart} \barc{5} \barc[plain=true]{7} \barc[plain=true]{3} \end{barchart} \end{minipage} \end{center} \section{Skips} Between each bar a skip can be implemented to have more or less room. This is done using \texttt{\textbackslash barcskip\{\}}. \begin{center} \begin{minipage}[l][][c]{0.45\linewidth} \begin{quote}\small \begin{verbatim} \begin{barchart} \barc{5} \barcskip{10pt} \barc{7} \barcskip{20pt} \barc{3} \barcskip{30pt} \barc{2} \barcskip{-5pt} \barc{6} \end{barchart} \end{verbatim} \end{quote} \end{minipage} \quad \begin{minipage}[r][][c]{0.45\linewidth} \begin{barchart} \barc{5} \barcskip{10pt} \barc{7} \barcskip{20pt} \barc{3} \barcskip{30pt} \barc{2} \barcskip{-5pt} \barc{6} \end{barchart} \end{minipage} \end{center} The skips can either be made with positive or negative \texttt{pt} or using default skip sizes as \texttt{\textbackslash smallskip}, \texttt{\textbackslash medskip} and \texttt{\textbackslash bigskip}. \begin{center} \begin{minipage}[l][][c]{0.45\linewidth} \begin{quote}\small \begin{verbatim} \begin{barchart} \barc{5} \smallskip \barc{7} \medskip \barc{3} \bigskip \barc{2} \end{barchart} \end{verbatim} \end{quote} \end{minipage} \quad \begin{minipage}[r][][c]{0.45\linewidth} \begin{barchart} \barc{5} \smallskip \barc{7} \medskip \barc{3} \bigskip \barc{2} \end{barchart} \end{minipage} \end{center} \section{Labels} The package also include various ways of labeling the charts. Both the chart and its individual bars can be labeled. The chart can be labeled using: \begin{center} \begin{minipage}[l][][c]{0.45\linewidth} \begin{quote}\small \begin{verbatim} \begin{barchart}[label= A nice chart] \barc{5} \barc{7} \barc{3} \barc{2} \end{barchart} \end{verbatim} \end{quote} \end{minipage} \quad \begin{minipage}[r][][c]{0.45\linewidth} \begin{barchart}[label= A nice chart] \barc{5} \barc{7} \barc{3} \barc{2} \end{barchart} \end{minipage} \end{center} Each bar can also have their own label. These labels are positioned below the x-axis. \begin{center} \begin{minipage}[l][][c]{0.45\linewidth} \begin{quote}\small \begin{verbatim} \begin{barchart}[label=A nice chart] \barc[label=Some]{5} \barc[label=Nice]{7} \barc[label=Labels]{3} \end{barchart} \end{verbatim} \end{quote} \end{minipage} \quad \begin{minipage}[r][][c]{0.45\linewidth} \begin{barchart}[label=A nice chart] \barc[label=Some]{5} \barc[label=Nice]{7} \barc[label=Labels]{3} \end{barchart} \end{minipage} \end{center} These labels can also be rotated, so they are easier to read using \texttt{rotation=true}. \begin{center} \begin{minipage}[l][][c]{0.45\linewidth} \begin{quote}\small \begin{verbatim} \begin{barchart} \barc[label=Some, rotation=true]{5} \barc[label=Nice, rotation=true]{7} \barc[label=Labels, rotation=true]{3} \end{barchart} \end{verbatim} \end{quote} \end{minipage} \quad \begin{minipage}[r][][c]{0.45\linewidth} \begin{barchart} \barc[label=Som, rotation=truee]{5} \barc[label=Nice, rotation=true]{7} \barc[label=Labels, rotation=true]{3} \end{barchart} \end{minipage} \end{center} \section{Scaling} If the charts become too big or small, it is possible to scale them using \texttt{scale}. \begin{center} \begin{minipage}[l][][c]{0.45\linewidth} \begin{quote}\small \begin{verbatim} \begin{barchart}[scale = 0.5] \barc{5} \barc{7} \barc{3} \end{barchart} \end{verbatim} \end{quote} \end{minipage} \quad \begin{minipage}[r][][c]{0.45\linewidth} \begin{barchart}[scale=0.5] \barc{5} \barc{7} \barc{3} \end{barchart} \end{minipage} \end{center} But sometimes it is not enough to just scale the chart. Using \texttt{height} it is possible to set a fixed height of the chart. \begin{center} \begin{minipage}[l][][c]{0.45\linewidth} \begin{quote}\small \begin{verbatim} \begin{barchart}[min=0, max=500, step = 100, height=0.05ex] \barc{500} \barc{70} \barc{300} \end{barchart} \end{verbatim} \end{quote} \end{minipage} \quad \begin{minipage}[r][][c]{0.45\linewidth} \begin{barchart}[min=0, max=500, step = 100, height=0.05ex] \barc{500} \barc{70} \barc{300} \end{barchart} \end{minipage} \end{center} \section{Known Issues} When using large values for each bar, it is important to set a fixed height like: \begin{quote}\small \begin{verbatim} \begin{barchart}[label= A nice chart, min=0, max=100, height=0.2ex, step=20] \barc{50} \barc{70} \barc{30} \barc{20} \barc{50} \barc{70} \barc{30} \barc{20} \barc{50} \barc{70} \barc{30} \barc{20} \end{barchart} \end{verbatim} \end{quote} \begin{quote}\small \begin{barchart}[label= A nice chart, min=0, max=100, height=0.2ex, step=20] \barc{50} \barc{70} \barc{30} \barc{20} \barc{50} \barc{70} \barc{30} \barc{20} \barc{50} \barc{70} \barc{30} \barc{20} \end{barchart} \end{quote} \end{document}