620
633
def add_fill_simple(self, colour):
621
634
self.markers.append(('B', colour, '1', '1', '1'))
624
class ScatterChart(Chart):
626
def type_to_url(self):
629
def annotated_data(self):
630
yield ('x', self.data[0])
631
yield ('y', self.data[1])
632
if len(self.data) > 2:
633
# The optional third dataset is relative sizing for point
635
yield ('marker-size', self.data[2])
637
class LineChart(Chart):
639
def __init__(self, *args, **kwargs):
640
assert(type(self) != LineChart) # This is an abstract class
641
Chart.__init__(self, *args, **kwargs)
642
self.line_styles = {}
637
# -------------------------------------------------------------------------
645
639
def set_line_style(self, index, thickness=1, line_segment=None, \
646
640
blank_segment=None):
651
645
value.append(str(blank_segment))
652
646
self.line_styles[index] = value
649
# -------------------------------------------------------------------------
654
651
def set_grid(self, x_step, y_step, line_segment=1, \
655
652
blank_segment=0):
656
653
self.grid = '%s,%s,%s,%s' % (x_step, y_step, line_segment, \
659
def get_url_bits(self, data_class=None):
660
url_bits = Chart.get_url_bits(self, data_class=data_class)
663
for index in xrange(max(self.line_styles) + 1):
664
if index in self.line_styles:
665
values = self.line_styles[index]
668
style.append(','.join(values))
669
url_bits.append('chls=%s' % '|'.join(style))
671
url_bits.append('chg=%s' % self.grid)
657
class ScatterChart(Chart):
659
def type_to_url(self):
662
def annotated_data(self):
663
yield ('x', self.data[0])
664
yield ('y', self.data[1])
665
if len(self.data) > 2:
666
# The optional third dataset is relative sizing for point
668
yield ('marker-size', self.data[2])
670
class LineChart(Chart):
672
def __init__(self, *args, **kwargs):
673
assert(type(self) != LineChart) # This is an abstract class
674
Chart.__init__(self, *args, **kwargs)
676
# def get_url_bits(self, data_class=None):
677
# url_bits = Chart.get_url_bits(self, data_class=data_class)
675
681
class SimpleLineChart(LineChart):
854
chart = GroupedVerticalBarChart(320, 200)
855
860
chart = PieChart2D(320, 200)
856
861
chart = ScatterChart(320, 200)
857
862
chart = SimpleLineChart(320, 200)
863
chart = GroupedVerticalBarChart(320, 200)
858
864
chart = RadarChart(500, 500)
859
sine_data = [math.sin(float(a) / 10) * 100 + 50 for a in xrange(100)]
865
sine_data = [math.sin(float(a) / math.pi) * 100 for a in xrange(100)]
860
866
random_data = [random.random() * 100 for a in xrange(100)]
861
random_data2 = [random.random() * 4000 for a in xrange(10)]
867
random_data2 = [random.random() * 50 for a in xrange(100)]
862
868
# chart.set_bar_width(50)
863
869
# chart.set_bar_spacing(0)
864
870
chart.add_data(sine_data)
865
871
chart.add_data(random_data)
866
# chart.add_data(random_data2)
867
# chart.set_line_style(1, thickness=2)
868
# chart.set_line_style(2, line_segment=10, blank_segment=5)
869
chart.set_title('heloooo weeee')
870
chart.set_legend(('sine wave', 'random * x'))
872
chart.add_data(random_data2)
873
# chart.set_line_style(0, thickness=5)
874
# chart.set_line_style(1, thickness=2, line_segment=10, blank_segment=5)
875
# chart.set_title('heloooo weeee')
876
# chart.set_legend(('sine wave', 'random * x'))
871
877
chart.set_colours(('ee2000', 'DDDDAA', 'fF03f2'))
872
878
# chart.fill_solid(Chart.BACKGROUND, '123456')
873
chart.fill_linear_gradient(Chart.CHART, 20, '004070', 1, '300040', 0,
879
# chart.fill_linear_gradient(Chart.CHART, 20, '004070', 1, '300040', 0,
875
881
# chart.fill_linear_stripes(Chart.CHART, 20, '204070', .2, '300040', .2,
876
882
# 'aabbcc00', 0.2)
877
axis_left_index = chart.set_axis_range(Axis.LEFT, 0, 10)
878
# axis_left_index = chart.set_axis_range(Axis.LEFT, 0, 10)
879
883
# axis_left_index = chart.set_axis_range(Axis.LEFT, 0, 10)
880
884
# axis_right_index = chart.set_axis_range(Axis.RIGHT, 5, 30)
881
885
# axis_bottom_index = chart.set_axis_labels(Axis.BOTTOM, [1, 25, 95])