Exemple #1
0
    def rdraw(self, root_element, x_transform, y_transform, svg_bbox):

        width = svg_bbox[2] - svg_bbox[0]
        height = svg_bbox[1] - svg_bbox[3]
        assert width > 0
        assert height > 0

        im = Image.new('RGBA', (width, height), (255, 255, 255, 0))
        imdraw = ImageDraw.Draw(im)

        # above should be hidden (not re-implemented in each subclass)
        if self.gradient and self.gradient_i is not None:
            for i, datapoint in enumerate(izip(*self.datapoints)):
                rgba_color = self.gradient.get_rgba_color(
                    datapoint[self.gradient_i])
                for s in self.symbols:
                    s.rdraw(imdraw,
                            x_transform,
                            y_transform,
                            *datapoint,
                            rgba_color=rgba_color)
        elif self.colors:
            for i, datapoint in enumerate(izip(*self.datapoints)):
                for s in self.symbols:
                    rgba_color = svg_color2rgba_color(self.colors[i])
                    s.rdraw(imdraw,
                            x_transform,
                            y_transform,
                            *datapoint,
                            rgba_color=rgba_color)
        else:
            for datapoint in izip(*self.datapoints):
                rgba_color = svg_color2rgba_color(self.color)
                for s in self.symbols:
                    s.rdraw(imdraw,
                            x_transform,
                            y_transform,
                            *datapoint,
                            rgba_color=rgba_color)
        # below should be hidden (not re-implemented in each subclass)

        tmp = StringIO.StringIO()
        im.save(tmp, format='png')
        encoded_png = 'data:image/png;base64,\n' + encodestring(tmp.getvalue())

        img = ET.SubElement(root_element, 'image')
        img.set('xlink:href', encoded_png)
        img.set('x', '%.2f' % min(svg_bbox[0], svg_bbox[2]))
        img.set('y', '%.2f' % min(svg_bbox[1], svg_bbox[3]))
        img.set('width', '%.2f' % width)
        img.set('height', '%.2f' % height)
        img.set('preserveAspectRatio', 'none')
Exemple #2
0
    def rdraw(self, root_element, x_transform, y_transform, svg_bbox):
        width = svg_bbox[2] - svg_bbox[0]
        height = svg_bbox[1] - svg_bbox[3]
        assert width > 0
        assert height > 0

        im = Image.new('RGBA', (width, height), (255, 255, 255, 0))
        imdraw = ImageDraw.Draw(im)

        # above should be hidden (not re-implemented in each subclass)
        if self.gradient and self.gradient_i is not None:
            for i, datapoint in enumerate(izip(*self.datapoints)):
                rgba_color = self.gradient.get_rgba_color(
                    datapoint[self.gradient_i])
                for s in self.symbols:
                    s.draw(imdraw, x_transform, y_transform, *datapoint,
                           err_x=self.err_x, err_y=self.err_y,
                           rgba_color=rgba_color)
        elif self.colors:
            for i, datapoint in enumerate(izip(*self.datapoints)):
                rgba_color = svg_color2rgba_color(self.colors[i])
                for s in self.symbols:
                    s.rdraw(imdraw, x_transform, y_transform, *datapoint,
                            err_x=self.err_x[i], err_y=self.err_y[i],
                            rgba_color=rgba_color)
        else:
            rgba_color = svg_color2rgba_color(self.color)
            for i, datapoint in enumerate(izip(*self.datapoints)):
                for s in self.symbols:
                    s.rdraw(imdraw, x_transform, y_transform, *datapoint,
                            err_x=self.err_x[i], err_y=self.err_y[i],
                            rgba_color=rgba_color)
        # below should be hidden (not re-implemented in each subclass)

        tmp = StringIO.StringIO()
        im.save(tmp, format='png')
        encoded_png = 'data:image/png;base64,\n' + encodestring(tmp.getvalue())

        img = ET.SubElement(root_element, 'image')
        img.set('xlink:href', encoded_png)
        img.set('x', '%.2f' % min(svg_bbox[0], svg_bbox[2]))
        img.set('y', '%.2f' % min(svg_bbox[1], svg_bbox[3]))
        img.set('width', '%.2f' % width)
        img.set('height', '%.2f' % height)
        img.set('preserveAspectRatio', 'none')
    def rdraw(self, imdraw, x_transform, y_transform, x, y, **kwargs):
        nx = x_transform(x)
        ny = y_transform(y)

        rgba_color = svg_color2rgba_color(self.color)
        sigma = kwargs['sigma']
        radius = min(0.5 * (sigma - 5) + 1, 8)

        bbox = [
            nx - radius,
            ny - radius,
            nx + radius,
            ny + radius,
        ]
        imdraw.ellipse(bbox, fill=None, outline=rgba_color)
Exemple #4
0
    def rdraw(self, root_element, x_transform, y_transform, svg_bbox):

        width = svg_bbox[2] - svg_bbox[0]
        height = svg_bbox[1] - svg_bbox[3]
        assert width > 0
        assert height > 0

        im = Image.new('RGBA', (width, height), (255, 255, 255, 0))
        imdraw = ImageDraw.Draw(im)
        rgba_color = svg_color2rgba_color(self.color)

        # above should be hidden (not re-implemented in each subclass)
        if len(self.datapoints) > 1:
            tmp = []
            for datapoint in izip(*self.datapoints):
                x = x_transform(datapoint[0])
                y = y_transform(datapoint[1])
                tmp.append(x)
                tmp.append(y)
            imdraw.line(tmp, fill=rgba_color, width=1)
        # below should be hidden (not re-implemented in each subclass)

        tmp = StringIO.StringIO()
        im.save(tmp, format='png')
        encoded_png = 'data:image/png;base64,\n' + encodestring(tmp.getvalue())

        img = ET.SubElement(root_element, 'image')
        img.set('xlink:href', encoded_png)
        img.set('x', '%.2f' % min(svg_bbox[0], svg_bbox[2]))
        img.set('y', '%.2f' % min(svg_bbox[1], svg_bbox[3]))
        img.set('width', '%.2f' % width)
        img.set('height', '%.2f' % height)
        img.set('preserveAspectRatio', 'none')

        if self.use_markers:
            super(LinePlotter, self).rdraw(root_element, x_transform,
                                           y_transform, svg_bbox)