Browse Source

Merge pull request #301 from chartique/horizontal

Added options for Horizontal Line charts
pull/307/head
Mounier Florian 9 years ago
parent
commit
0e165e989f
  1. 2
      pygal/__init__.py
  2. 35
      pygal/graph/horizontalline.py
  3. 35
      pygal/graph/horizontalstackedline.py
  4. 5
      pygal/graph/line.py
  5. 2
      pygal/test/test_config.py

2
pygal/__init__.py

@ -40,6 +40,8 @@ from pygal.graph.histogram import Histogram
from pygal.graph.horizontalbar import HorizontalBar
from pygal.graph.horizontalstackedbar import HorizontalStackedBar
from pygal.graph.line import Line
from pygal.graph.horizontalline import HorizontalLine
from pygal.graph.horizontalstackedline import HorizontalStackedLine
from pygal.graph.pie import Pie
from pygal.graph.pyramid import Pyramid, VerticalPyramid
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):
"""Compute y min and max and y scale and set 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 = [
x / (self._len - 1) for x in range(self._len)
] if self._len != 1 else [.5] # Center if only one value

2
pygal/test/test_config.py

@ -23,6 +23,7 @@ from pygal import (
Line, Dot, Pie, Treemap, Radar, Config, Bar, Funnel,
Histogram, Gauge, Box, XY,
Pyramid, HorizontalBar, HorizontalStackedBar,
HorizontalStackedLine, HorizontalLine,
DateTimeLine, TimeLine, DateLine, TimeDeltaLine)
from pygal.graph.map import BaseMap
from pygal.graph.horizontal import HorizontalGraph
@ -434,6 +435,7 @@ def test_y_label_major(Chart):
if Chart in (
Pie, Treemap, Funnel, Dot, Gauge, Histogram, Box,
HorizontalBar, HorizontalStackedBar,
HorizontalStackedLine, HorizontalLine,
Pyramid, DateTimeLine, TimeLine, DateLine,
TimeDeltaLine
) or issubclass(Chart, BaseMap):

Loading…
Cancel
Save