コード例 #1
0
ファイル: dot.py プロジェクト: anasrazeq/pygal
    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)
コード例 #2
0
 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)
コード例 #3
0
ファイル: verticalpyramid.py プロジェクト: Zanarh/pygal
 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)
コード例 #4
0
ファイル: dot.py プロジェクト: psibi/pygal
    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)
コード例 #5
0
ファイル: dot.py プロジェクト: luispedraza/toorno
    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)
コード例 #6
0
ファイル: dot.py プロジェクト: xmy1990/pygal
    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)
コード例 #7
0
    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)