163
163
raise DataOutOfRangeException()
164
164
encoded_data.append(','.join(sub_data))
165
return 'chd=t:' + '|'.join(encoded_data)
165
return 'chd=t:' + '%7c'.join(encoded_data)
168
168
def scale_value(cls, value, range):
345
346
# optional arguments
347
348
url_bits.append('chtt=%s' % self.title)
349
if self.title_colour and self.title_font_size:
350
url_bits.append('chts=%s,%s' % (self.title_colour, \
351
self.title_font_size))
349
url_bits.append('chdl=%s' % '|'.join(self.legend))
353
url_bits.append('chdl=%s' % '%7c'.join(self.legend))
350
354
if self.legend_position:
351
355
url_bits.append('chdlp=%s' % (self.legend_position))
353
357
url_bits.append('chco=%s' % ','.join(self.colours))
354
358
if self.colours_within_series:
355
url_bits.append('chco=%s' % '|'.join(self.colours_within_series))
359
url_bits.append('chco=%s' % '%7c'.join(self.colours_within_series))
356
360
ret = self.fill_to_url()
358
362
url_bits.append(ret)
371
375
style.append(','.join(values))
372
url_bits.append('chls=%s' % '|'.join(style))
376
url_bits.append('chls=%s' % '%7c'.join(style))
374
378
url_bits.append('chg=%s' % self.grid)
396
400
self.title = None
402
def set_title_style(self, colour, font_size):
403
if not colour is None:
404
_check_colour(colour)
405
self.title_colour = colour
406
self.title_font_size = font_size
398
408
def set_legend(self, legend):
399
409
"""legend needs to be a list, tuple or None"""
400
410
assert(isinstance(legend, list) or isinstance(legend, tuple) or
474
484
areas.append('%s,%s,%s' % (area, self.fill_types[area], \
475
485
self.fill_area[area]))
477
return 'chf=' + '|'.join(areas)
487
return 'chf=' + '%7c'.join(areas)
480
490
# -------------------------------------------------------------------------
654
664
url_bits.append('chxt=%s' % ','.join(available_axis))
656
url_bits.append('chxl=%s' % '|'.join(label_axis))
666
url_bits.append('chxl=%s' % '%7c'.join(label_axis))
658
url_bits.append('chxr=%s' % '|'.join(range_axis))
668
url_bits.append('chxr=%s' % '%7c'.join(range_axis))
660
url_bits.append('chxp=%s' % '|'.join(positions))
670
url_bits.append('chxp=%s' % '%7c'.join(positions))
662
url_bits.append('chxs=%s' % '|'.join(styles))
672
url_bits.append('chxs=%s' % '%7c'.join(styles))
663
673
return '&'.join(url_bits)
665
675
# Markers, Ranges and Fill area (chm)
666
676
# -------------------------------------------------------------------------
668
678
def markers_to_url(self):
669
return 'chm=%s' % '|'.join([','.join(a) for a in self.markers])
679
return 'chm=%s' % '%7c'.join([','.join(a) for a in self.markers])
671
681
def add_marker(self, index, point, marker_type, colour, size, priority=0):
672
682
self.markers.append((marker_type, colour, str(index), str(point), \
676
686
self.markers.append(('r', colour, '0', str(start), str(stop)))
678
688
def add_data_line(self, colour, data_set, size, priority=0):
679
self.markers.append(('D', colour, str(data_set), '0', str(size), str(priority)))
689
self.markers.append(('D', colour, str(data_set), '0', str(size), \
681
def add_marker_text(self, string, colour, data_set, data_point, size, priority=0):
682
self.markers.append((str(string), colour, str(data_set), str(data_point), str(size), str(priority)))
692
def add_marker_text(self, string, colour, data_set, data_point, size, \
694
self.markers.append((str(string), colour, str(data_set), \
695
str(data_point), str(size), str(priority)))
684
697
def add_vertical_range(self, colour, start, stop):
685
698
self.markers.append(('R', colour, '0', str(start), str(stop)))
885
898
def get_url_bits(self, data_class=None):
886
899
url_bits = Chart.get_url_bits(self, data_class=data_class)
887
900
if self.pie_labels:
888
url_bits.append('chl=%s' % '|'.join(self.pie_labels))
901
url_bits.append('chl=%s' % '%7c'.join(self.pie_labels))
891
904
def annotated_data(self):
989
1002
if self.encoding:
990
1003
url_bits.append('choe=%s' % self.encoding)
991
1004
if self.ec_level:
992
url_bits.append('chld=%s|%s' % (self.ec_level, self.margin))
1005
url_bits.append('chld=%s%%7c%s' % (self.ec_level, self.margin))
995
1008
def set_encoding(self, encoding):