diff --git a/lib/matplotlib/backends/backend_svg.py b/lib/matplotlib/backends/backend_svg.py index 59ba7b6ff198..0b9b7ab51701 100644 --- a/lib/matplotlib/backends/backend_svg.py +++ b/lib/matplotlib/backends/backend_svg.py @@ -794,11 +794,17 @@ def draw_image(self, gc, x, y, im, dx=None, dy=None, transform=None): attrib=attrib) else: flipped = self._make_flip_transform(transform) + flipped = np.array(flipped.to_values()) + y = y+dy + if dy > 0.0: + flipped[3] *= -1.0 + y *= -1.0 attrib[u'transform'] = generate_transform( - [(u'matrix', flipped.to_values())]) + [(u'matrix', flipped)]) self.writer.element( u'image', - x=unicode(x), y=unicode(y+dy), width=unicode(dx), height=unicode(-dy), + x=unicode(x), y=unicode(y), + width=unicode(dx), height=unicode(abs(dy)), attrib=attrib) if url is not None: diff --git a/lib/matplotlib/tests/baseline_images/test_image/no_interpolation_origin.pdf b/lib/matplotlib/tests/baseline_images/test_image/no_interpolation_origin.pdf new file mode 100644 index 000000000000..84f18a515e1f Binary files /dev/null and b/lib/matplotlib/tests/baseline_images/test_image/no_interpolation_origin.pdf differ diff --git a/lib/matplotlib/tests/baseline_images/test_image/no_interpolation_origin.png b/lib/matplotlib/tests/baseline_images/test_image/no_interpolation_origin.png new file mode 100644 index 000000000000..93d7b67a3cf8 Binary files /dev/null and b/lib/matplotlib/tests/baseline_images/test_image/no_interpolation_origin.png differ diff --git a/lib/matplotlib/tests/baseline_images/test_image/no_interpolation_origin.svg b/lib/matplotlib/tests/baseline_images/test_image/no_interpolation_origin.svg new file mode 100644 index 000000000000..3f1a19385ad6 --- /dev/null +++ b/lib/matplotlib/tests/baseline_images/test_image/no_interpolation_origin.svg @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lib/matplotlib/tests/test_image.py b/lib/matplotlib/tests/test_image.py index 1a5282f7fec8..15d3c41e0420 100644 --- a/lib/matplotlib/tests/test_image.py +++ b/lib/matplotlib/tests/test_image.py @@ -152,6 +152,19 @@ def test_imshow(): ax.set_xticks([]) ax.set_yticks([]) +@image_comparison(baseline_images=['no_interpolation_origin']) +def test_no_interpolation_origin(): + fig = plt.figure() + ax = fig.add_subplot(211) + ax.imshow(np.arange(100).reshape((2, 50)), origin="lower", interpolation='none') + ax.set_xticks([]) + ax.set_yticks([]) + + ax = fig.add_subplot(212) + ax.imshow(np.arange(100).reshape((2, 50)), interpolation='none') + ax.set_xticks([]) + ax.set_yticks([]) + if __name__=='__main__': import nose nose.runmodule(argv=['-s','--with-doctest'], exit=False)