File: sample-barchart.tex

package info (click to toggle)
texlive-extra 2014.20141024-1
  • links: PTS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 2,016,484 kB
  • ctags: 21,582
  • sloc: perl: 140,144; python: 16,926; makefile: 12,969; sh: 9,285; ansic: 3,415; java: 3,090; csh: 2,987; xml: 1,050; lisp: 630; ruby: 487; lex: 358; tcl: 142; sed: 36; pascal: 25; cpp: 18; awk: 10; haskell: 5
file content (57 lines) | stat: -rw-r--r-- 1,803 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
 % This file is public domain.
\documentclass[captions=tableheading]{scrartcl}

\usepackage{tikz}
\usetikzlibrary{snakes}

\usepackage{databar}

\DTLloaddb{marks}{sample-student-records.csv}

\begin{document}

% Compute average mark for each student:
\DTLforeach{marks}{%
\assignI=Assignment 1,%
\assignII=Assignment 2,%
\assignIII=Assignment 3}{%
\DTLmeanforall{\theMean}{\assignI,\assignII,\assignIII}%
\DTLround{\theMean}{\theMean}{0}\DTLclip{\theMean}{\theMean}%
\DTLappendtorow{Average}{\theMean}}

\begin{table}
\caption{Student Marks}
 \centering
\DTLdisplaydb[Address,RegNum,Title]{marks}
\end{table}

\begin{figure}[htbp]
 \centering
 % compute the overall mean
 \DTLmeanforkeys{marks}{Average}{\overallmean}
 % round it to 2 decimal places
 \DTLround{\overallmean}{\overallmean}{2}
 % draw a grey dotted line indicating the overall mean
 % covering the entire width of the bar chart
 \renewcommand*{\DTLbaratendtikz}{%
   \draw[lightgray,loosely dotted] (0,\overallmean) --
     (\DTLbarchartwidth,\overallmean)
     node[right,black]{Average (\overallmean)};}
 % Set the lower bar labels to draw a brace across the current
 % group, along with the student's name and average score
 \renewcommand*{\DTLdisplaylowerbarlabel}[1]{%
 \tikz[baseline=(current bounding box.center)]{
 \draw[snake=brace,rotate=-90](0,0) -- (\DTLbargroupwidth,0);}
 \DTLround{\theMean}{\theMean}{2}%
 \shortstack{#1\\(Average: \theMean)}}
 % draw the bar chart
 \DTLmultibarchart{variables={\assignI,\assignII,\assignIII},
 barwidth=10pt,uppermultibarlabels={\assignI,\assignII,\assignIII},
 barlabel={\firstname\ \surname}}{marks}
 {\surname=Surname,\firstname=First Name,\assignI=Assignment 1,%
 \assignII=Assignment 2,\assignIII=Assignment 3,\theMean=Average}
 \caption{Student marks}
\end{figure}


\end{document}