From da49463b506d3b5a52b1d05ccb7388429b8712e1 Mon Sep 17 00:00:00 2001 From: Alberto Date: Wed, 2 Mar 2016 00:04:14 -0500 Subject: [PATCH] Fixes matplotlib/matplotlib#1235 --- lib/matplotlib/legend.py | 13 ++++++++-- .../test_legend/not_covering_scatter.png | Bin 0 -> 15676 bytes .../test_legend/not_covering_scatter_transform.png | Bin 0 -> 21635 bytes lib/matplotlib/tests/test_legend.py | 27 +++++++++++++++++++++ 4 files changed, 38 insertions(+), 2 deletions(-) create mode 100644 lib/matplotlib/tests/baseline_images/test_legend/not_covering_scatter.png create mode 100644 lib/matplotlib/tests/baseline_images/test_legend/not_covering_scatter_transform.png diff --git a/lib/matplotlib/legend.py b/lib/matplotlib/legend.py index 4f18d0526e6..3af482cf603 100644 --- a/lib/matplotlib/legend.py +++ b/lib/matplotlib/legend.py @@ -737,6 +737,7 @@ def _auto_legend_data(self): ax = self.parent bboxes = [] lines = [] + offsets = [] for handle in ax.lines: assert isinstance(handle, Line2D) @@ -755,12 +756,19 @@ def _auto_legend_data(self): transform = handle.get_transform() bboxes.append(handle.get_path().get_extents(transform)) + for handle in ax.collections: + transform, transOffset, hoffsets, paths = handle._prepare_points() + + if len(hoffsets): + for offset in transOffset.transform(hoffsets): + offsets.append(offset) + try: vertices = np.concatenate([l.vertices for l in lines]) except ValueError: vertices = np.array([]) - return [vertices, bboxes, lines] + return [vertices, bboxes, lines, offsets] def draw_frame(self, b): 'b is a boolean. Set draw frame to b' @@ -920,7 +928,7 @@ def _find_best_position(self, width, height, renderer, consider=None): # should always hold because function is only called internally assert self.isaxes - verts, bboxes, lines = self._auto_legend_data() + verts, bboxes, lines, offsets = self._auto_legend_data() bbox = Bbox.from_bounds(0, 0, width, height) if consider is None: @@ -939,6 +947,7 @@ def _find_best_position(self, width, height, renderer, consider=None): # take their into account when checking vertex overlaps in # the next line. badness = legendBox.count_contains(verts) + badness += legendBox.count_contains(offsets) badness += legendBox.count_overlaps(bboxes) for line in lines: # FIXME: the following line is ill-suited for lines diff --git a/lib/matplotlib/tests/baseline_images/test_legend/not_covering_scatter.png b/lib/matplotlib/tests/baseline_images/test_legend/not_covering_scatter.png new file mode 100644 index 0000000000000000000000000000000000000000..4e9b72e640ce837a8dc85638c534434f0a873b3a GIT binary patch literal 15676 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 T{-O!)3&ET+`6>IvS literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/baseline_images/test_legend/not_covering_scatter_transform.png b/lib/matplotlib/tests/baseline_images/test_legend/not_covering_scatter_transform.png new file mode 100644 index 0000000000000000000000000000000000000000..e2a90732fc11f5102b7f35aedb57d353f1870f7a GIT binary patch literal 21635 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 B&zb-L literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/test_legend.py b/lib/matplotlib/tests/test_legend.py index a43231b964e..293c64a3dbf 100644 --- a/lib/matplotlib/tests/test_legend.py +++ b/lib/matplotlib/tests/test_legend.py @@ -16,6 +16,7 @@ import matplotlib.pyplot as plt import matplotlib as mpl import matplotlib.patches as mpatches +import matplotlib.transforms as mtrans @image_comparison(baseline_images=['legend_auto1'], remove_text=True) @@ -261,6 +262,32 @@ def test_nanscatter(): ax.grid(True) +@image_comparison(baseline_images=['not_covering_scatter'], extensions=['png']) +def test_not_covering_scatter(): + colors = ['b','g','r'] + + for n in range(3): + plt.scatter([n,], [n,], color=colors[n]) + + plt.legend(['foo', 'foo', 'foo'], loc='best') + plt.gca().set_xlim(-0.5, 2.2) + plt.gca().set_ylim(-0.5, 2.2) + + +@image_comparison(baseline_images=['not_covering_scatter_transform'], + extensions=['png']) +def test_not_covering_scatter_transform(): + # Offsets point to top left, the default auto position + offset = mtrans.Affine2D().translate(-20, 20) + x = np.linspace(0, 30, 1000) + plt.plot(x, x) + + plt.scatter([20], [10], transform=offset + plt.gca().transData) + + plt.legend(['foo', 'bar'], loc='best') + + if __name__ == '__main__': import nose nose.runmodule(argv=['-s', '--with-doctest'], exit=False) +