From 85ea94838d8a1009cf2b918aef2d3d55c9ad6158 Mon Sep 17 00:00:00 2001 From: Jae-Joon Lee Date: Thu, 28 Mar 2013 11:37:01 +0900 Subject: [PATCH 1/2] fix legend w/ 'expand' mode which fails for a single item. --- lib/matplotlib/offsetbox.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/matplotlib/offsetbox.py b/lib/matplotlib/offsetbox.py index 8ac5f7a1b5ad..6f4f1ebc4ffd 100644 --- a/lib/matplotlib/offsetbox.py +++ b/lib/matplotlib/offsetbox.py @@ -73,7 +73,10 @@ def _get_packed_offsets(wd_list, total, sep, mode="fixed"): return total, offsets elif mode == "expand": - sep = (total - sum(w_list)) / (len(w_list) - 1.) + if len(w_list) > 1: + sep = (total - sum(w_list)) / (len(w_list) - 1.) + else: + sep = 0. offsets_ = np.add.accumulate([0] + [w + sep for w in w_list]) offsets = offsets_[:-1] From eb3ecb23f2caed0c68ca40e9f299acd14b408974 Mon Sep 17 00:00:00 2001 From: Jae-Joon Lee Date: Mon, 1 Apr 2013 11:10:12 +0900 Subject: [PATCH 2/2] add test for legend w/ expand mode --- .../test_legend/legend_expand.pdf | Bin 0 -> 5158 bytes .../test_legend/legend_expand.png | Bin 0 -> 17617 bytes .../test_legend/legend_expand.svg | 1157 +++++++++++++++++ lib/matplotlib/tests/test_legend.py | 16 + 4 files changed, 1173 insertions(+) create mode 100644 lib/matplotlib/tests/baseline_images/test_legend/legend_expand.pdf create mode 100644 lib/matplotlib/tests/baseline_images/test_legend/legend_expand.png create mode 100644 lib/matplotlib/tests/baseline_images/test_legend/legend_expand.svg diff --git a/lib/matplotlib/tests/baseline_images/test_legend/legend_expand.pdf b/lib/matplotlib/tests/baseline_images/test_legend/legend_expand.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ccae6aab282f15312576b7fa2bc78e01f8f44a20 GIT binary patch literal 5158 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 literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/baseline_images/test_legend/legend_expand.png b/lib/matplotlib/tests/baseline_images/test_legend/legend_expand.png new file mode 100644 index 0000000000000000000000000000000000000000..0c03b851fa2373425ce5d39221c04017a85b2cd8 GIT binary patch literal 17617 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lib/matplotlib/tests/test_legend.py b/lib/matplotlib/tests/test_legend.py index f192fb4b23af..21c3ac5e85e6 100644 --- a/lib/matplotlib/tests/test_legend.py +++ b/lib/matplotlib/tests/test_legend.py @@ -46,3 +46,19 @@ def test_fancy(): plt.errorbar(range(10), range(10), xerr=0.5, yerr=0.5, label='XX') plt.legend(loc="center left", bbox_to_anchor=[1.0, 0.5], ncol=2, shadow=True, title="My legend", numpoints=1) + + +@image_comparison(baseline_images=['legend_expand'], remove_text=True) +def test_legend_expand(): + 'Test expand mode' + legend_modes = [None, "expand"] + fig, axes_list = plt.subplots(len(legend_modes), 1) + x = np.arange(100) + for ax, mode in zip(axes_list, legend_modes): + ax.plot(x, 50 - x, 'o', label='y=1') + l1 = ax.legend(loc=2, mode=mode) + ax.add_artist(l1) + ax.plot(x, x - 50, 'o', label='y=-1') + l2 = ax.legend(loc=5, mode=mode) + ax.add_artist(l2) + ax.legend(loc=3, mode=mode, ncol=2)