| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391 |
- # This program is free software; you can redistribute it and/or modify
- # it under the terms of the GNU General Public License as published by
- # the Free Software Foundation; version 2 of the License.
- #
- # This program is distributed in the hope that it will be useful,
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- # GNU General Public License for more details.
- #
- # Author: Emanuel Fonseca
- # Email: emdfonseca<at>gmail<dot>com
- # Date: 25 August 2008
- #
- # Author: Eugene Kin Chee Yip
- # Date: 7 Nov 2008
- class varieties(dict):
- def __init__(self, type = None, alpha = None, colour = None, text = None, fontsize = None, values = None):
- self.set_type(type)
- self.set_alpha(alpha)
- self.set_colour(colour)
- self.set_text(text)
- self.set_fontsize(fontsize)
- self.set_values(values)
- def set_type(self, type):
- if type:
- self['type'] = type
- def set_alpha(self, alpha):
- if alpha:
- self['alpha'] = alpha
- def set_colour(self, colour):
- if colour:
- self['colour'] = colour
-
- def set_gradient_fill(self, gradient_fill):
- self['gradient-fill'] = gradient_fill
-
-
- def set_halo_size(self, size):
- self['halo-size'] = size
-
- def set_width(self, width):
- self['width'] = width
-
- def set_dot_size(self, size):
- self['dot-size'] = size
-
- def set_text(self, text):
- if text:
- self['text'] = text
- def set_fontsize(self, fontsize):
- if fontsize:
- self['font-size'] = fontsize
- def set_values(self, values):
- if values:
- self['values'] = values
-
- def append_keys(self, colour = None, text = None, fontsize = None):
- try:
- self['keys'].append(bar_stack_key(colour, text, fontsize))
- except:
- self['keys'] = [bar_stack_key(colour, text, fontsize)]
-
-
- def append_values(self, values):
- try:
- self['values'].append(values)
- except:
- self['values'] = [values]
-
- def append_stack(self, values):
- self.append_values(values)
-
-
-
- def set_line_style(self, on, off):
- self['line-style'] = line_style(on, off)
-
- def set_tooltip(self, text):
- self['tip'] = text
-
- def set_no_labels(self, no_labels):
- self['no-labels'] = no_labels
-
- def set_loop(self):
- self['loop'] = True
-
- def set_on_click(self, javascript_call):
- self['on-click'] = javascript_call
- ##########################################
- # key class for bar stack
- class bar_stack_key(dict):
- def __init__(self, colour = None, text = None, fontsize = None):
- self.set_colour(colour)
- self.set_text(text)
- self.set_fontsize(fontsize)
-
- def set_colour(self, colour):
- if colour:
- self['colour'] = colour
-
- def set_text(self, text):
- if text:
- self['text'] = text
-
- def set_fontsize(self, fontsize):
- if fontsize:
- self['font-size'] = fontsize
- ##########################################
- # value class for custom data points
- class value(dict):
- def __init__(self, val = None, colour = None, tooltip = None):
- self.set_val(val)
- self.set_colour(colour)
- self.set_tooltip(tooltip)
-
- def set_val(self, val):
- if val:
- self['value'] = val
-
- def set_colour(self, colour):
- if colour:
- self['colour'] = colour
-
- def set_tooltip(self, tooltip):
- if tooltip:
- self['tip'] = tooltip
-
- class dot_value(value):
- pass
- class bar_value(value):
- def __init__(self, (top, bottom), colour = None, tooltip = None):
- value.__init__(self, colour = colour, tooltip = tooltip)
- self.set_top_value(top)
- self.set_bottom_value(bottom)
-
- def set_top_value(self, top):
- self['top'] = top
-
- def set_bottom_value(self, bottom):
- self['bottom'] = bottom
-
- class bar_3d_value(bar_value):
- def __init__(self, top, colour = None, tooltip = None):
- value.__init__(self, colour = colour, tooltip = tooltip)
- self.set_top_value(top)
-
- def set_top_value(self, top):
- self['top'] = top
-
-
- class bar_glass_value(bar_3d_value):
- pass
-
- class bar_sketch_value(bar_3d_value):
- pass
- class hbar_value(value):
- def __init__(self, (left, right), colour = None, tooltip = None):
- value.__init__(self, colour = colour, tooltip = tooltip)
- self.set_left_value(left)
- self.set_right_value(right)
-
- def set_left_value(self, left):
- self['left'] = left
-
- def set_right_value(self, right):
- self['right'] = right
- class bar_stack_value(value):
- def __init__(self, val, colour = None, tooltip = None):
- value.__init__(self, colour = colour, tooltip = tooltip)
- self.set_value(val)
-
- def set_value(self, val):
- if val:
- self['val'] = val
-
- class pie_value(value):
- def __init__(self, val, label = None, colour = None, tooltip = None):
- value.__init__(self, val, colour, tooltip)
- self.set_label(label)
-
- def set_label(self, (label, colour, fontsize)):
- if label:
- self['label'] = label
- if colour:
- self['label-colour'] = colour
- if fontsize:
- self['font-size'] = fontsize
-
-
- class scatter_value(value):
- def __init__(self, (x, y), colour = None, tooltip = None):
- value.__init__(self, colour = colour, tooltip = tooltip)
- self.set_x_value(x)
- self.set_y_value(y)
-
- def set_x_value(self, x):
- self['x'] = x
-
- def set_y_value(self, y):
- self['y'] = y
- ##########################################
- # line style class for charts with lines
- class line_style(dict):
- def __init__(self, on = None, off = None, style = 'dash'):
- self.set_style(style)
- self.set_on(on)
- self.set_off(off)
-
- def set_style(self, style):
- self['style'] = style
-
- def set_on(self, on):
- if on:
- self['on'] = on
-
- def set_off(self, off):
- if off:
- self['off'] = off
-
- ##########################################
- # label classes
- class x_axis_labels(dict):
- def __init__(self, labels = None, steps = None, colour = None, size = None, rotate = None):
- self.set_labels(labels)
- self.set_steps(steps)
- self.set_colour(colour)
- self.set_size(size)
- self.set_rotate(rotate)
-
- def set_labels(self, labels):
- if labels:
- self['labels'] = labels
-
- def set_steps(self, steps):
- if steps:
- self['steps'] = steps
-
- def set_colour(self, colour):
- if colour:
- self['colour'] = colour
-
- def set_size(self, size):
- if size:
- self['size'] = size
-
- def set_rotate(self, rotate):
- if rotate:
- self['rotate'] = rotate
-
- class x_axis_label(dict):
- def __init__(self, text = None, colour = None, size = None, rotate = None):
- self.set_text(text)
- self.set_colour(colour)
- self.set_size(size)
- self.set_rotate(rotate)
-
- def set_text(self, text):
- if text:
- self['text'] = text
-
- def set_colour(self, colour):
- if colour:
- self['colour'] = colour
-
- def set_size(self, size):
- if size:
- self['size'] = size
-
- def set_rotate(self, rotate):
- if rotate:
- self['rotate'] = rotate
-
-
-
-
- ##########################################
- # Chart classes
- # Line Charts
- class Line(varieties):
- def __init__(self, alpha = None, colour = None, text = None, fontsize = None, values = None):
- varieties.__init__(self, 'line', alpha, colour, text, fontsize, values)
-
- class Line_Dot(varieties):
- def __init__(self, alpha = None, colour = None, text = None, fontsize = None, values = None):
- varieties.__init__(self, 'line_dot', alpha, colour, text, fontsize, values)
-
- class Line_Hollow(varieties):
- def __init__(self, alpha = None, colour = None, text = None, fontsize = None, values = None):
- varieties.__init__(self, 'line_hollow', alpha, colour, text, fontsize, values)
- # Bar Charts
- class Bar(varieties):
- def __init__(self, alpha = None, colour = None, text = None, fontsize = None, values = None):
- varieties.__init__(self, 'bar', alpha, colour, text, fontsize, values)
- class Bar_Filled(varieties):
- def __init__(self, alpha = None, colour = None, text = None, fontsize = None, values = None, outline = None):
- varieties.__init__(self, 'bar_filled', alpha, colour, text, fontsize, values)
- if outline:
- self['outline-colour'] = outline
- class Bar_Glass(varieties):
- def __init__(self, alpha = None, colour = None, text = None, fontsize = None, values = None):
- varieties.__init__(self, 'bar_glass', alpha, colour, text, fontsize, values)
- class Bar_3d(varieties):
- def __init__(self, alpha = None, colour = None, text = None, fontsize = None, values = None):
- varieties.__init__(self, 'bar_3d', alpha, colour, text, fontsize, values)
- class Bar_Sketch(varieties):
- def __init__(self, alpha = None, colour = None, text = None, fontsize = None, values = None, outline = None):
- varieties.__init__(self, 'bar_sketch', alpha, colour, text, fontsize, values)
- if outline:
- self['outline-colour'] = outline
- class HBar(varieties):
- def __init__(self, alpha = None, colour = None, text = None, fontsize = None, values = None):
- varieties.__init__(self, 'hbar', alpha, colour, text, fontsize, values)
- class Bar_Stack(varieties):
- def __init__(self, alpha = None, colour = None, text = None, fontsize = None, values = None, colours = None):
- varieties.__init__(self, 'bar_stack', alpha, colour, text, fontsize, values)
- if colours:
- self['colours'] = colours
-
- # Area Charts
- class Area_Line(varieties):
- def __init__(self, alpha = None, colour = None, text = None, fontsize = None, values = None, fill = None, fill_alpha = None):
- varieties.__init__(self, 'area_line', alpha, colour, text, fontsize, values)
- if fill_alpha:
- self['fill-alpha'] = fill_alpha
- if fill:
- self['fill'] = fill
- class Area_Hollow(varieties):
- def __init__(self, alpha = None, colour = None, text = None, fontsize = None, values = None, fill = None, fill_alpha = None):
- varieties.__init__(self, 'area_hollow', alpha, colour, text, fontsize, values)
- if fill_alpha:
- self['fill-alpha'] = fill_alpha
- if fill:
- self['fill'] = fill
- # Pie Chart
- class Pie(varieties):
- def __init__(self, alpha = None, colour = None, text = None, fontsize = None, values = None, start_angle = None, animate = None, colours = None, label_colour = None):
- varieties.__init__(self, 'pie', alpha, colour, text, fontsize, values)
- if start_angle:
- self['start-angle'] = start_angle
- if animate:
- self['animate'] = animate
- if colours:
- self['colours'] = colours
- if label_colour:
- self['label-colour'] = label_colour
-
- # Scatter Charts
- class Scatter(varieties):
- def __init__(self, alpha = None, colour = None, text = None, fontsize = None, values = None, colours = None):
- varieties.__init__(self, 'scatter', alpha, colour, text, fontsize, values)
- class Scatter_Line(varieties):
- def __init__(self, alpha = None, colour = None, text = None, fontsize = None, values = None, colours = None):
- varieties.__init__(self, 'scatter_line', alpha, colour, text, fontsize, values)
-
-
|