# HG changeset patch # User Jeff Hammel # Date 1427737547 25200 # Node ID 9acea302899a6f4fcb859c4d2f62d7a9c9aeae4f # Parent ce0e1e5efe772f9e92699021b16574060d67d468 preparing for d3 diff -r ce0e1e5efe77 -r 9acea302899a numerics/bar.py --- a/numerics/bar.py Mon Mar 30 10:35:59 2015 -0700 +++ b/numerics/bar.py Mon Mar 30 10:45:47 2015 -0700 @@ -7,20 +7,27 @@ See: - http://bokeh.pydata.org/tutorial/solutions/gallery/olympics.html - http://bokeh.pydata.org/en/latest/tutorial/topical.html -- +- https://gist.github.com/mbostock/7322386 """ # imports import argparse +import os import sys import tempfile from .data import transpose from .manipulate import ManipulationParser -from bokeh.plotting import figure, output_file, show, VBox from collections import OrderedDict __all__ = ['bar_chart', 'BarChartParser', 'main'] +# template info +# TODO: own module +here = os.path.dirname(os.path.abspath(__file__)) +templates = os.path.join(here, 'templates') +template = os.path.join(here, 'bar.d3.html') +d3 = os.path.join(here, 'javascript', 'd3.v3.min.js') + def bar_chart(data, output, title=None): """ @@ -32,27 +39,6 @@ # TODO: abstract this to a plot class - # create a figure - p1 = figure(title=title, - tools="pan,wheel_zoom,box_zoom,reset,resize", - x_range=data[0] - ) - # see https://github.com/bokeh/bokeh/blob/master/bokeh/plotting_helpers.py#L277 - # for _known_tools - - - if not len(data) == 2: - raise NotImplementedError('TODO') # -> record TODO items - - p1.rect(x=data[0], y=data[1], height=data[1], width=0.2) - show(VBox(p1)) - -# bar = Bar(data, tools="pan,wheel_zoom,box_zoom,reset,resize") -# bar.filename(output) -# bar.width(len(data)*50) -# bar.show() - - class BarChartParser(ManipulationParser): """command line options parser for bar charts""" # TODO: upstream to PlotParser @@ -87,21 +73,12 @@ data = parser.typed_data() # ensure a mapping is given - if len(data) == 1: - data.insert(0, range(len(data[-1]))) - if len(data) != 2: - parser.error("A mapping is required") -# mapping = OrderedDict(transpose(data)) - + if len(data) != 1: + raise NotImplementedError("TODO") # generate bar chart - bar_chart(data, parser.plot_filename(), title=options.title) -# bar_chart(data, options.output, title=options.title) +# bar_chart(data, parser.plot_filename(), title=options.title) -# BBB keeping this around for reference; -# we should probably move to a better parsing system at some point -# parse file -# data = pd.read_csv(options.input, header=None, names=options.columns, index_col=0) if __name__ == '__main__': main()