def dot(self, serie, r_max): """Draw a dot line""" serie_node = self.svg.serie(serie) view_values = list(map(self.view, serie.points)) for i, value in safe_enumerate(serie.values): x, y = view_values[i] if self.logarithmic: log10min = log10(self._min) - 1 log10max = log10(self._max or 1) if value != 0: size = r_max * ( (log10(abs(value)) - log10min) / (log10max - log10min) ) else: size = 0 else: size = r_max * (abs(value) / (self._max or 1)) metadata = serie.metadata.get(i) dots = decorate( self.svg, self.svg.node(serie_node['plot'], class_="dots"), metadata) alter(self.svg.node( dots, 'circle', cx=x, cy=y, r=size, class_='dot reactive tooltip-trigger' + ( ' negative' if value < 0 else '')), metadata) value = self._format(value) self._tooltip_data(dots, value, x, y, classes='centered') self._static_value(serie_node, value, x, y)
def _plot(self): stack_vals = [[0, 0] for i in range(self._len)] for index, serie in enumerate(self.series): serie_node = self._serie(index) stack_vals = self.bar(serie_node, serie, [ tuple((self._x_ranges[i][j], v * (-1 if index % 2 else 1)) for j in range(2)) for i, v in safe_enumerate(serie.values) ], index, stack_vals)
def _plot(self): stack_vals = [[0, 0] for i in range(self._len)] for index, serie in enumerate(self.series): serie_node = self._serie(index) stack_vals = self.bar( serie_node, serie, [ tuple( (self._x_ranges[i][j], v * (-1 if index % 2 else 1)) for j in range(2)) for i, v in safe_enumerate(serie.values)], index, stack_vals)
def dot(self, serie_node, serie, r_max): """Draw a dot line""" view_values = list(map(self.view, serie.points)) for i, value in safe_enumerate(serie.values): x, y = view_values[i] size = r_max * value value = self._format(value) metadata = serie.metadata.get(i) dots = decorate(self.svg, self.svg.node(serie_node["plot"], class_="dots"), metadata) self.svg.node(dots, "circle", cx=x, cy=y, r=size, class_="dot reactive tooltip-trigger") self._tooltip_data(dots, value, x, y) self._static_value(serie_node, value, x, y)
def dot(self, serie_node, serie, r_max): """Draw a dot line""" view_values = map(self.view, serie.points) for i, value in safe_enumerate(serie.values): x, y = view_values[i] size = r_max * value value = self._format(value) metadata = serie.metadata.get(i) dots = decorate( self.svg, self.svg.node(serie_node['plot'], class_="dots"), metadata) self.svg.node(dots, 'circle', cx=x, cy=y, r=size, class_='dot reactive tooltip-trigger') self._tooltip_data(dots, value, x, y) self._static_value(serie_node, value, x, y)
def dot(self, serie, r_max): """Draw a dot line""" serie_node = self.svg.serie(serie) view_values = list(map(self.view, serie.points)) for i, value in safe_enumerate(serie.values): x, y = view_values[i] if self.logarithmic: log10min = log10(self._min) - 1 log10max = log10(self._max or 1) if value != 0: size = r_max * ((log10(abs(value)) - log10min) / (log10max - log10min)) else: size = 0 else: size = r_max * (abs(value) / (self._max or 1)) metadata = serie.metadata.get(i) dots = decorate( self.svg, self.svg.node(serie_node['plot'], class_="dots"), metadata ) alter( self.svg.node( dots, 'circle', cx=x, cy=y, r=size, class_='dot reactive tooltip-trigger' + (' negative' if value < 0 else '') ), metadata ) val = self._format(serie, i) self._tooltip_data( dots, val, x, y, 'centered', self._get_x_label(i) ) self._static_value(serie_node, val, x, y, metadata)
def dot(self, serie, r_max): """Draw a box line""" width = (self.view.x(1) - self.view.x(0)) serie_node = self.svg.serie(serie) view_values = list(map(self.view, serie.points)) for i, value in safe_enumerate(serie.values): x, y = view_values[i] if self.logarithmic: log10min = log10(self._min) - 1 log10max = log10(self._max or 1) if value != 0: size = r_max * ((log10(abs(value)) - log10min) / (log10max - log10min)) else: size = 0 else: size = r_max * (abs(value) / (self._max or 1)) metadata = serie.metadata.get(i) dots = decorate(self.svg, self.svg.node(serie_node['plot'], class_="dots"), metadata) alter( self.svg.node(dots, 'rect', x=x - 0.5 * width, y=(y - size) if value > 0 else y, width=width, height=size, class_='dot reactive tooltip-trigger' + (' negative' if value < 0 else '')), metadata) val = self._format(serie, i) self._tooltip_data(dots, val, x, y, '', self._get_x_label(i)) self._static_value(serie_node, val, x, y, metadata)