[Python-modules-commits] [python-mplexporter] 90/135: Change `draw_line` and `draw_markers` to 'draw_marked_line`.
Wolfgang Borgert
debacle at moszumanska.debian.org
Tue Sep 23 21:19:07 UTC 2014
This is an automated email from the git hooks/post-receive script.
debacle pushed a commit to branch master
in repository python-mplexporter.
commit 1a365a88139091aaef0946a24555582050b08c79
Author: theengineear <andseier at gmail.com>
Date: Thu Mar 13 21:36:55 2014 -0700
Change `draw_line` and `draw_markers` to 'draw_marked_line`.
Exporter lets the base renderer farm out the appropriate calls to
`draw_markers` and `draw_lines`. Renderer's can reimplement the
`draw_marked_line` method if they wish to keep the line and marker
information bundled together.
If a renderer doesn't wish to do so, they should NOT reimplement the
`draw_marked_line` function, instead reimplementing both `draw_line` and
`draw_markers`.
---
mplexporter/exporter.py | 20 ++++++++++----------
mplexporter/renderers/base.py | 14 ++++++++++++++
2 files changed, 24 insertions(+), 10 deletions(-)
diff --git a/mplexporter/exporter.py b/mplexporter/exporter.py
index 9d37cde..d6bc563 100644
--- a/mplexporter/exporter.py
+++ b/mplexporter/exporter.py
@@ -164,17 +164,17 @@ class Exporter(object):
ax, line.get_xydata(),
force_trans=force_trans)
linestyle = utils.get_line_style(line)
- if linestyle['dasharray'] not in ['None', 'none', None]:
- self.renderer.draw_line(data=data,
- coordinates=coordinates,
- style=linestyle, mplobj=line)
-
markerstyle = utils.get_marker_style(line)
- if markerstyle['marker'] not in ['None', 'none', None]:
- if markerstyle['markerpath'][0].size > 0:
- self.renderer.draw_markers(data=data,
- coordinates=coordinates,
- style=markerstyle, mplobj=line)
+ lines = linestyle['dasharray'] not in ['None', 'none', None]
+ markers = markerstyle['marker'] not in ['None', 'none', None]
+ label = line.get_label()
+ if markers and not lines and markerstyle['markerpath'][0].size > 0:
+ self.renderer.draw_marked_line(data=data, coordinates=coordinates,
+ lines=lines, markers=markers,
+ linestyle=linestyle,
+ markerstyle=markerstyle,
+ label=label,
+ mplobj=line)
def draw_text(self, ax, text, force_trans=None, text_type=None):
"""Process a matplotlib text object and call renderer.draw_text"""
diff --git a/mplexporter/renderers/base.py b/mplexporter/renderers/base.py
index d73fc99..1e5c6b8 100644
--- a/mplexporter/renderers/base.py
+++ b/mplexporter/renderers/base.py
@@ -107,6 +107,20 @@ class Renderer(object):
"""
pass
+ def draw_marked_line(self, data, coordinates, lines, markers, linestyle,
+ markerstyle, label, mplobj=None):
+ """Draw a line that also has markers.
+
+ If this isn't reimplemented by a renderer object, by default, it will
+ make a call to BOTH draw_line and draw_markers when both markers and
+ lines are present in the same Line2D object.
+
+ """
+ if lines:
+ self.draw_line(data, coordinates, linestyle, label, mplobj)
+ if markers:
+ self.draw_markers(data, coordinates, markerstyle, label, mplobj)
+
def draw_line(self, data, coordinates, style, mplobj=None):
"""
Draw a line. By default, draw the line via the draw_path() command.
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/python-modules/packages/python-mplexporter.git
More information about the Python-modules-commits
mailing list