Browse Source

Added options for Horizontal Line Charts

pull/301/head
chartique 9 years ago
parent
commit
c6324cc8e9
  1. 1
      pygal/__init__.py
  2. 35
      pygal/graph/horizontalline.py
  3. 35
      pygal/graph/horizontalstackedline.py
  4. 5
      pygal/graph/line.py

1
pygal/__init__.py

@ -40,6 +40,7 @@ from pygal.graph.histogram import Histogram
from pygal.graph.horizontalbar import HorizontalBar from pygal.graph.horizontalbar import HorizontalBar
from pygal.graph.horizontalstackedbar import HorizontalStackedBar from pygal.graph.horizontalstackedbar import HorizontalStackedBar
from pygal.graph.line import Line from pygal.graph.line import Line
from pygal.graph.horizontalline import HorizontalLine
from pygal.graph.pie import Pie from pygal.graph.pie import Pie
from pygal.graph.pyramid import Pyramid, VerticalPyramid from pygal.graph.pyramid import Pyramid, VerticalPyramid
from pygal.graph.radar import Radar from pygal.graph.radar import Radar

35
pygal/graph/horizontalline.py

@ -0,0 +1,35 @@
# -*- coding: utf-8 -*-
# This file is part of pygal
#
# A python svg graph plotting library
# Copyright © 2012-2015 Kozea
#
# This library is free software: you can redistribute it and/or modify it under
# the terms of the GNU Lesser General Public License as published by the Free
# Software Foundation, either version 3 of the License, or (at your option) any
# later version.
#
# This library is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
# details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with pygal. If not, see <http://www.gnu.org/licenses/>.
"""Horizontal line graph"""
from pygal.graph.line import Line
from pygal.graph.horizontal import HorizontalGraph
class HorizontalLine(HorizontalGraph, Line):
"""Horizontal Line graph"""
def _plot(self):
"""Draw the lines in reverse order"""
for serie in self.series[::-1]:
self.line(serie)
for serie in self.secondary_series[::-1]:
self.line(serie, True)

35
pygal/graph/horizontalstackedline.py

@ -0,0 +1,35 @@
# -*- coding: utf-8 -*-
# This file is part of pygal
#
# A python svg graph plotting library
# Copyright © 2012-2015 Kozea
#
# This library is free software: you can redistribute it and/or modify it under
# the terms of the GNU Lesser General Public License as published by the Free
# Software Foundation, either version 3 of the License, or (at your option) any
# later version.
#
# This library is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
# details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with pygal. If not, see <http://www.gnu.org/licenses/>.
"""Horizontal Stacked Line graph"""
from pygal.graph.stackedline import StackedLine
from pygal.graph.horizontal import HorizontalGraph
class HorizontalStackedLine(HorizontalGraph, StackedLine):
"""Horizontal Stacked Line graph"""
def _plot(self):
"""Draw the lines in reverse order"""
for serie in self.series[::-1]:
self.line(serie)
for serie in self.secondary_series[::-1]:
self.line(serie, True)

5
pygal/graph/line.py

@ -148,6 +148,11 @@ class Line(Graph):
def _compute(self): def _compute(self):
"""Compute y min and max and y scale and set labels""" """Compute y min and max and y scale and set labels"""
# X Labels # X Labels
if self.horizontal:
self._x_pos = [
x / (self._len - 1) for x in range(self._len)
][::-1] if self._len != 1 else [.5] # Center if only one value
else:
self._x_pos = [ self._x_pos = [
x / (self._len - 1) for x in range(self._len) x / (self._len - 1) for x in range(self._len)
] if self._len != 1 else [.5] # Center if only one value ] if self._len != 1 else [.5] # Center if only one value

Loading…
Cancel
Save