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')
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)
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)