Mercurial > hg > numerics
view numerics/bar.py @ 110:5790bcb30bd8
moar stubbin
author | Jeff Hammel <k0scist@gmail.com> |
---|---|
date | Sun, 15 Mar 2015 15:28:15 -0700 |
parents | 19a5c2fb52bb |
children | 7578313b9fbf |
line wrap: on
line source
#!/usr/bin/env python # -*- coding: utf-8 -*- """ bar charts using bokeh See: - http://bokeh.pydata.org/tutorial/solutions/gallery/olympics.html """ # imports import argparse import csv import os #import pandas as pd import sys from .read import CSVParser from bokeh.charts import Bar from bokeh.plotting import * from collections import OrderedDict __all__ = ['bar_chart', 'BarChartParser', 'main'] def bar_chart(data, output, title=None): """create a bar chart""" bar = Bar(data, tools="pan,wheel_zoom,box_zoom,reset,resize") bar.filename(output) bar.width(len(data)*50) bar.show() class BarChartParser(CSVParser): """command line options parser for bar charts""" # TODO: upstream to PlotParser def __init__(self, **kwargs): kwargs.setdefault('formatter_class', argparse.RawTextHelpFormatter) kwargs.setdefault('description', __doc__) CSVParser.__init__(self, **kwargs) self.add_argument('-t', '--title', dest='title', help="plot title") def main(args=sys.argv[1:]): """CLI""" # parse command line parser = BarChartParser() options = parser.parse_args(args) # parse file # data = pd.read_csv(options.input, header=None, names=options.columns, index_col=0) # generate bar chart # bar_chart(data, options.output, title=options.title or options.input.name) if __name__ == '__main__': main()