From 38478cc7e31ce9bb17732eb5ee6418910f55ac86 Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Wed, 6 Aug 2014 11:18:27 -0400 Subject: [PATCH] added and automated beautification done by jenson_bo --- tikz/histogram-large-1d-dataset/README.md | 5 +- .../histogram-large-1d-dataset.png | Bin 29392 -> 27953 bytes .../histogram-large-1d-dataset.template.tex | 44 ++++++++------ tikz/histogram-large-1d-dataset/process.py | 54 +++++++++++++++--- 4 files changed, 78 insertions(+), 25 deletions(-) diff --git a/tikz/histogram-large-1d-dataset/README.md b/tikz/histogram-large-1d-dataset/README.md index fff73c1..1f24214 100644 --- a/tikz/histogram-large-1d-dataset/README.md +++ b/tikz/histogram-large-1d-dataset/README.md @@ -6,4 +6,7 @@ Credits -------- Thanks to [esdd](http://tex.stackexchange.com/users/43317/esdd) who helped me -to get the LaTeX part work (see [tex.SE answer](http://tex.stackexchange.com/a/194966/5645)) \ No newline at end of file +to get the LaTeX part work (see [tex.SE answer](http://tex.stackexchange.com/a/194966/5645)) + +Thanks to [jenson_bo](http://tex.stackexchange.com/users/17775/jenson-bo) for +making it beautiful! \ No newline at end of file diff --git a/tikz/histogram-large-1d-dataset/histogram-large-1d-dataset.png b/tikz/histogram-large-1d-dataset/histogram-large-1d-dataset.png index 8e8aab524ef3b3cb64c014915be04128b6679f33..05f30a0d6938a66c5fb50bc0bafcff3eddaabf89 100644 GIT binary patch literal 27953 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 literal 29392 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 W&G*@QM~H8q1n6nQw5l`_5&sXwa`B`9 diff --git a/tikz/histogram-large-1d-dataset/histogram-large-1d-dataset.template.tex b/tikz/histogram-large-1d-dataset/histogram-large-1d-dataset.template.tex index 4c5c3c1..d9430b0 100644 --- a/tikz/histogram-large-1d-dataset/histogram-large-1d-dataset.template.tex +++ b/tikz/histogram-large-1d-dataset/histogram-large-1d-dataset.template.tex @@ -1,7 +1,7 @@ \documentclass[margin=10pt]{standalone} \usepackage{amsmath} \usepackage{pgfplots} -\pgfplotsset{compat=1.10} +\pgfplotsset{compat=1.3} \newcommand\clipright[1][white]{ \fill[#1](current axis.south east)rectangle(current axis.north-|current axis.outer east); @@ -9,36 +9,48 @@ \useasboundingbox(current axis.outer south west)rectangle([xshift=.5ex]current axis.outer north-|current axis.east); } +\definecolor{mycolor}{rgb}{0.02,0.4,0.7} + \begin{document} \begin{tikzpicture} - \begin{axis}[/tikz/ybar interval, - ybar legend, - xtick align=outside, + \begin{axis}[ + ymajorgrids, + xmajorgrids, + grid style={white,thick}, + axis on top, + /tikz/ybar interval, + tick align=outside, ymin=0, - axis x line*=left, + axis line style={draw opacity=0}, + tick style={draw=none}, enlarge x limits=false, - grid=major, height=7cm, title={All Results}, - xlabel={recording time $t$ in ms}, + title style={font=\Large}, + xlabel={recording time $t$ in s}, ylabel={Number of Recordings}, - xtick={0,...,16}, + ytick={0,10000,20000,30000,40000}, + scaled ticks=false, + yticklabels={ {{yticklabels}} }, xticklabels={ {{xticklabels}} }, width=\textwidth, xtick=data, - xticklabel style={ - inner sep=0pt, - anchor=north east, - rotate=45 + label style={font=\large}, + ticklabel style={ + inner sep=1pt, + font=\small }, nodes near coords, every node near coord/.append style={ - anchor=mid west, + fill=white, + anchor=mid west, + shift={(3pt,4pt)}, + inner sep=0, + font=\footnotesize, rotate=45}, ] - \addplot[blue, fill=blue!40!white] coordinates { {{coordinates}} }; - \legend{Time} + \addplot[mycolor!80!white, fill=mycolor, draw=none] coordinates { {{coordinates}} }; \end{axis} \clipright \end{tikzpicture} -\end{document} +\end{document} \ No newline at end of file diff --git a/tikz/histogram-large-1d-dataset/process.py b/tikz/histogram-large-1d-dataset/process.py index 99714db..8b3abcb 100755 --- a/tikz/histogram-large-1d-dataset/process.py +++ b/tikz/histogram-large-1d-dataset/process.py @@ -4,6 +4,7 @@ from __future__ import print_function import shutil import fileinput +import math def main(filename, bins, maximum): @@ -17,7 +18,7 @@ def main(filename, bins, maximum): numbers = sorted(numbers) minimum = min(numbers) bin_counter = [0 for i in range(bins+1)] - borders = [] + xticklabels = [] for i, number in enumerate(numbers): if number >= minimum + (maximum - minimum)/bins*(bins+1): bin_counter[bins] += 1 @@ -32,21 +33,56 @@ def main(filename, bins, maximum): break for b in range(bins): lower = minimum + (maximum - minimum)/bins*b - borders.append(str(lower)) - borders.append("\infty") - return bin_counter, borders + xticklabels.append(get_xticklabel(lower)) + + # Get labels for y-axis + ytickslabels = [] + maxylabel = int(10**math.floor(math.log(max(bin_counter), 10))) + ylabelsteps = maxylabel / 10 + for i in range(0, maxylabel+1, ylabelsteps): + ytickslabels.append(get_yticklabel(i, True)) + + xticklabels.append("\infty") + return bin_counter, xticklabels, ytickslabels -def modify_template(bin_counter, borders): +def get_xticklabel(value): + return str(int(value/1000)) + + +def get_yticklabel(value, si_suffix): + if si_suffix: + divide_by, suffix = get_si_suffix(value) + new_value = (value / divide_by) + if int(new_value) == new_value: + return ("%i" % int(new_value)) + suffix + else: + return ("%0.2f" % new_value) + suffix + else: + return str(value) + + +def get_si_suffix(value): + if value >= 10**3: + return (10**3, "K") + elif value >= 10**6: + return (10**6, "M") + else: + return (1, "") + + +def modify_template(bin_counter, xticklabels, yticklabels): shutil.copyfile("histogram-large-1d-dataset.template.tex", "histogram-large-1d-dataset.tex") - xticklabels = ", ".join(map(lambda n: "$%s$" % n, borders)) + xticklabels = ", ".join(map(lambda n: "$%s$" % n, xticklabels)) + yticklabels = ", ".join(yticklabels) coordinates = "" for i, value in enumerate(bin_counter): coordinates += "(%i, %i) " % (i, value) for line in fileinput.input("histogram-large-1d-dataset.tex", inplace=True): line = line.replace("{{xticklabels}}", xticklabels) + line = line.replace("{{yticklabels}}", yticklabels) line = line.replace("{{coordinates}}", coordinates) print(line, end='') @@ -65,5 +101,7 @@ if __name__ == '__main__': help=("what is the maximum number " "that should get binned?")) args = parser.parse_args() - bin_counter, borders = main(args.filename, args.bins, args.max) - modify_template(bin_counter, borders) + bin_counter, xticklabels, yticklabels = main(args.filename, + args.bins, + args.max) + modify_template(bin_counter, xticklabels, yticklabels)