From f435941406e95bb2fa1ba3bcf3b579457e5839fa Mon Sep 17 00:00:00 2001 From: Thomas A Caswell Date: Sun, 19 Nov 2017 16:21:27 -0500 Subject: [PATCH 1/2] API: do not truncate the total size of svg element to integers closes #9815 --- doc/api/api_changes/2017-11-19_svg_size.rst | 6 ++++++ lib/matplotlib/backends/backend_svg.py | 8 +++++--- 2 files changed, 11 insertions(+), 3 deletions(-) create mode 100644 doc/api/api_changes/2017-11-19_svg_size.rst diff --git a/doc/api/api_changes/2017-11-19_svg_size.rst b/doc/api/api_changes/2017-11-19_svg_size.rst new file mode 100644 index 000000000000..9a9ef9ecd232 --- /dev/null +++ b/doc/api/api_changes/2017-11-19_svg_size.rst @@ -0,0 +1,6 @@ +Do not truncate svg sizes to nearest point +------------------------------------------ + +There is no reason to size the SVG out put in integer points, change +to out putting floats for the *height*, *width*, and *viewBox* attributes +of the *svg* element. diff --git a/lib/matplotlib/backends/backend_svg.py b/lib/matplotlib/backends/backend_svg.py index f799973f932e..bf09351655a0 100644 --- a/lib/matplotlib/backends/backend_svg.py +++ b/lib/matplotlib/backends/backend_svg.py @@ -285,12 +285,14 @@ def __init__(self, width, height, svgwriter, basename=None, image_dpi=72): RendererBase.__init__(self) self._glyph_map = dict() - + str_height = short_float_fmt(height) + str_width = short_float_fmt(width) svgwriter.write(svgProlog) self._start_id = self.writer.start( 'svg', - width='%ipt' % width, height='%ipt' % height, - viewBox='0 0 %i %i' % (width, height), + width='%spt' % str_width, + height='%spt' % str_height, + viewBox='0 0 %s %s' % (str_width, str_height), xmlns="http://www.w3.org/2000/svg", version="1.1", attrib={'xmlns:xlink': "http://www.w3.org/1999/xlink"}) From f15c26b0a79a42441df89428e6c21037bba7f932 Mon Sep 17 00:00:00 2001 From: Thomas A Caswell Date: Sun, 19 Nov 2017 16:11:30 -0500 Subject: [PATCH 2/2] TST: updated sizes of svg baseline images to have use floats --- lib/matplotlib/tests/baseline_images/test_artist/hatching.svg | 2 +- lib/matplotlib/tests/baseline_images/test_axes/boxplot.svg | 2 +- .../tests/baseline_images/test_axes/boxplot_rc_parameters.svg | 2 +- lib/matplotlib/tests/baseline_images/test_axes/imshow.svg | 2 +- lib/matplotlib/tests/baseline_images/test_axes/imshow_clip.svg | 2 +- .../tests/baseline_images/test_axes/markevery_polar.svg | 2 +- lib/matplotlib/tests/baseline_images/test_axes/polar_axes.svg | 2 +- lib/matplotlib/tests/baseline_images/test_axes/polar_coords.svg | 2 +- .../tests/baseline_images/test_axes/polar_negative_rmin.svg | 2 +- .../tests/baseline_images/test_axes/polar_rlabel_position.svg | 2 +- lib/matplotlib/tests/baseline_images/test_axes/polar_rmin.svg | 2 +- .../tests/baseline_images/test_axes/polar_rorigin.svg | 2 +- .../tests/baseline_images/test_axes/polar_theta_position.svg | 2 +- lib/matplotlib/tests/baseline_images/test_axes/polar_units.svg | 2 +- .../tests/baseline_images/test_axes/polar_units_2.svg | 2 +- .../tests/baseline_images/test_axes/polar_wrap_180.svg | 2 +- .../tests/baseline_images/test_axes/polar_wrap_360.svg | 2 +- .../tests/baseline_images/test_bbox_tight/bbox_inches_tight.svg | 2 +- .../test_bbox_tight/bbox_inches_tight_clipping.svg | 2 +- .../test_bbox_tight/bbox_inches_tight_raster.svg | 2 +- .../test_bbox_tight/bbox_inches_tight_suptile_legend.svg | 2 +- .../tests/baseline_images/test_image/bbox_image_inverted.svg | 2 +- lib/matplotlib/tests/baseline_images/test_image/image_clip.svg | 2 +- .../tests/baseline_images/test_image/image_cliprect.svg | 2 +- .../baseline_images/test_image/image_composite_background.svg | 2 +- .../tests/baseline_images/test_image/image_interps.svg | 2 +- lib/matplotlib/tests/baseline_images/test_image/imshow.svg | 2 +- .../baseline_images/test_image/imshow_masked_interpolation.svg | 2 +- lib/matplotlib/tests/baseline_images/test_legend/hatching.svg | 2 +- .../tests/baseline_images/test_lines/scaled_lines.svg | 2 +- .../tests/baseline_images/test_patches/multi_color_hatch.svg | 2 +- lib/matplotlib/tests/baseline_images/test_path/nan_path.svg | 2 +- .../tests/baseline_images/test_path/path_clipping.svg | 2 +- .../tests/baseline_images/test_patheffects/patheffect2.svg | 2 +- .../tests/baseline_images/test_mplot3d/axes3d_ortho.svg | 2 +- 35 files changed, 35 insertions(+), 35 deletions(-) diff --git a/lib/matplotlib/tests/baseline_images/test_artist/hatching.svg b/lib/matplotlib/tests/baseline_images/test_artist/hatching.svg index 893ec54dda3d..ba93c768832c 100644 --- a/lib/matplotlib/tests/baseline_images/test_artist/hatching.svg +++ b/lib/matplotlib/tests/baseline_images/test_artist/hatching.svg @@ -2,7 +2,7 @@ - +