/+junk/pygooglechart-py3k

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/%2Bjunk/pygooglechart-py3k

« back to all changes in this revision

Viewing changes to pygooglechart.py

  • Committer: gak
  • Date: 2008-08-23 06:46:04 UTC
  • Revision ID: git-v1:df4fb7845ec5ed0e89d6b485a0c6babd75ac5ff3
 - Bug fixed when automatic scaling is on and None values are in a data set (#5) (Alec Thomas)

Show diffs side-by-side

added added

removed removed

Lines of Context:
498
498
        else:
499
499
            return ExtendedData
500
500
 
 
501
    def _filter_none(self, data):
 
502
        return [r for r in data if r is not None]
 
503
 
501
504
    def data_x_range(self):
502
505
        """Return a 2-tuple giving the minimum and maximum x-axis
503
506
        data range.
504
507
        """
505
508
        try:
506
 
            lower = min([min(s) for type, s in self.annotated_data()
 
509
            lower = min([min(self._filter_none(s))
 
510
                         for type, s in self.annotated_data()
507
511
                         if type == 'x'])
508
 
            upper = max([max(s) for type, s in self.annotated_data()
 
512
            upper = max([max(self._filter_none(s))
 
513
                         for type, s in self.annotated_data()
509
514
                         if type == 'x'])
510
515
            return (lower, upper)
511
516
        except ValueError:
516
521
        data range.
517
522
        """
518
523
        try:
519
 
            lower = min([min(s) for type, s in self.annotated_data()
 
524
            lower = min([min(self._filter_none(s))
 
525
                         for type, s in self.annotated_data()
520
526
                         if type == 'y'])
521
 
            upper = max([max(s) + 1 for type, s in self.annotated_data()
 
527
            upper = max([max(self._filter_none(s)) + 1
 
528
                         for type, s in self.annotated_data()
522
529
                         if type == 'y'])
523
530
            return (lower, upper)
524
531
        except ValueError:
562
569
                scale_range = y_range
563
570
            elif type == 'marker-size':
564
571
                scale_range = (0, max(dataset))
565
 
            scaled_data.append([data_class.scale_value(v, scale_range)
566
 
                                for v in dataset])
 
572
            scaled_dataset = []
 
573
            for v in dataset:
 
574
                if v is None:
 
575
                    scaled_dataset.append(None)
 
576
                else:
 
577
                    scaled_dataset.append(
 
578
                        data_class.scale_value(v, scale_range))
 
579
            scaled_data.append(scaled_dataset)
567
580
        return scaled_data
568
581
 
569
582
    def add_data(self, data):