From: <md...@us...> - 2009-10-12 13:30:49
|
Revision: 7875 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7875&view=rev Author: mdboom Date: 2009-10-12 13:30:32 +0000 (Mon, 12 Oct 2009) Log Message: ----------- Add SVG tests. Fix a hatching bug found in the process of this. Modified Paths: -------------- trunk/matplotlib/lib/matplotlib/__init__.py trunk/matplotlib/lib/matplotlib/backends/backend_pdf.py trunk/matplotlib/lib/matplotlib/backends/backend_ps.py trunk/matplotlib/lib/matplotlib/backends/backend_svg.py trunk/matplotlib/lib/matplotlib/testing/compare.py trunk/matplotlib/lib/matplotlib/testing/decorators.py trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_axes/shaped_data.pdf trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_axes/shaped_data.png trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_simplification/hatch_simplify.pdf trunk/matplotlib/lib/matplotlib/tests/test_axes.py Added Paths: ----------- trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_axes/axhspan_epoch.svg trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_axes/axvspan_epoch.svg trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_axes/const_xy.svg trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_axes/fill_units.svg trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_axes/formatter_ticker_001.svg trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_axes/formatter_ticker_002.svg trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_axes/formatter_ticker_003.svg trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_axes/formatter_ticker_004.svg trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_axes/formatter_ticker_005.svg trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_axes/hexbin_extent.svg trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_axes/nonfinite_limits.svg trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_axes/offset_points.svg trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_axes/polar_axes.svg trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_axes/polar_coords.svg trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_axes/polar_units.svg trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_axes/polar_wrap_180.svg trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_axes/polar_wrap_360.svg trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_axes/shaped data.svg trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_axes/shaped_data.svg trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_axes/single_date.svg trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_axes/single_point.svg trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_dates/DateFormatter_fractionalSeconds.svg trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_dates/RRuleLocator_bounds.svg trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_dates/date_axhline.svg trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_dates/date_axhspan.svg trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_dates/date_axvline.svg trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_dates/date_axvspan.svg trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_dates/date_empty.svg trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_image/image_interps.svg trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_simplification/clipping.svg trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_simplification/clipping_diamond.svg trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_simplification/hatch_simplify.svg trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_simplification/overflow.svg trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_simplification/simplify_curve.svg trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_spines/spines_axes_positions.svg Modified: trunk/matplotlib/lib/matplotlib/__init__.py =================================================================== --- trunk/matplotlib/lib/matplotlib/__init__.py 2009-10-12 13:21:07 UTC (rev 7874) +++ trunk/matplotlib/lib/matplotlib/__init__.py 2009-10-12 13:30:32 UTC (rev 7875) @@ -301,6 +301,30 @@ except (IndexError, ValueError, UnboundLocalError, OSError): return None +def checkdep_inkscape(): + try: + s = subprocess.Popen(['inkscape','-V'], stdout=subprocess.PIPE, + stderr=subprocess.PIPE) + for line in s.stdout: + if 'Inkscape' in line: + v = line.split()[1] + break + return v + except (IndexError, ValueError, UnboundLocalError, OSError): + return None + +def checkdep_xmllint(): + try: + s = subprocess.Popen(['xmllint','--version'], stdout=subprocess.PIPE, + stderr=subprocess.PIPE) + for line in s.stderr: + if 'version' in line: + v = line.split()[-1] + break + return v + except (IndexError, ValueError, UnboundLocalError, OSError): + return None + def compare_versions(a, b): "return True if a is greater than or equal to b" if a: Modified: trunk/matplotlib/lib/matplotlib/backends/backend_pdf.py =================================================================== --- trunk/matplotlib/lib/matplotlib/backends/backend_pdf.py 2009-10-12 13:21:07 UTC (rev 7874) +++ trunk/matplotlib/lib/matplotlib/backends/backend_pdf.py 2009-10-12 13:30:32 UTC (rev 7875) @@ -1344,7 +1344,7 @@ def draw_path(self, gc, path, transform, rgbFace=None): self.check_gc(gc, rgbFace) - self.file.writePath(path, transform, rgbFace is None) + self.file.writePath(path, transform, (rgbFace is None and gc.get_hatch_path() is None)) self.file.output(self.gc.paint()) def draw_markers(self, gc, marker_path, marker_trans, path, trans, rgbFace=None): Modified: trunk/matplotlib/lib/matplotlib/backends/backend_ps.py =================================================================== --- trunk/matplotlib/lib/matplotlib/backends/backend_ps.py 2009-10-12 13:21:07 UTC (rev 7874) +++ trunk/matplotlib/lib/matplotlib/backends/backend_ps.py 2009-10-12 13:30:32 UTC (rev 7875) @@ -471,7 +471,9 @@ """ Draws a Path instance using the given affine transform. """ - ps = self._convert_path(path, transform, clip=(rgbFace is None)) + ps = self._convert_path( + path, transform, + clip=(rgbFace is None and gc.get_hatch_path() is None)) self._draw_ps(ps, gc, rgbFace) def draw_markers(self, gc, marker_path, marker_trans, path, trans, rgbFace=None): Modified: trunk/matplotlib/lib/matplotlib/backends/backend_svg.py =================================================================== --- trunk/matplotlib/lib/matplotlib/backends/backend_svg.py 2009-10-12 13:21:07 UTC (rev 7874) +++ trunk/matplotlib/lib/matplotlib/backends/backend_svg.py 2009-10-12 13:30:32 UTC (rev 7875) @@ -61,7 +61,7 @@ RendererBase.__init__(self) self._glyph_map = dict() - + svgwriter.write(svgProlog%(width,height,width,height)) def _draw_svg_element(self, element, details, gc, rgbFace): @@ -241,7 +241,8 @@ def draw_path(self, gc, path, transform, rgbFace=None): trans_and_flip = self._make_flip_transform(transform) - path_data = self._convert_path(path, trans_and_flip, clip=(rgbFace is None)) + path_data = self._convert_path(path, trans_and_flip, + clip=(rgbFace is None and gc.get_hatch_path() is None)) self._draw_svg_element('path', 'd="%s"' % path_data, gc, rgbFace) def draw_markers(self, gc, marker_path, marker_trans, path, trans, rgbFace=None): @@ -412,7 +413,7 @@ def _adjust_char_id(self, char_id): return char_id.replace("%20","_") - + def draw_text_as_path(self, gc, x, y, s, prop, angle, ismath): """ draw the text by converting them to paths using textpath module. @@ -422,26 +423,26 @@ *s* text to be converted - + *usetex* If True, use matplotlib usetex mode. *ismath* If True, use mathtext parser. If "TeX", use *usetex* mode. - + """ # this method works for normal text, mathtext and usetex mode. # But currently only utilized by draw_tex method. - + glyph_map=self._glyph_map - + text2path = self._text2path color = rgb2hex(gc.get_rgb()[:3]) fontsize = prop.get_size_in_points() write = self._svgwriter.write - + if ismath == False: font = text2path._get_font(prop) _glyphs = text2path.get_glyphs_with_font(font, s, glyph_map=glyph_map, @@ -460,7 +461,7 @@ write('</defs>\n') glyph_map.update(glyph_map_new) - + svg = [] clipid = self._get_gc_clip_svg(gc) if clipid is not None: @@ -508,7 +509,7 @@ write('</defs>\n') glyph_map.update(glyph_map_new) - + svg = [] clipid = self._get_gc_clip_svg(gc) if clipid is not None: @@ -800,7 +801,7 @@ w, h, d = texmanager.get_text_width_height_descent(s, fontsize, renderer=self) return w, h, d - + if ismath: width, height, descent, trash, used_characters = \ self.mathtext_parser.parse(s, 72, prop) Modified: trunk/matplotlib/lib/matplotlib/testing/compare.py =================================================================== --- trunk/matplotlib/lib/matplotlib/testing/compare.py 2009-10-12 13:21:07 UTC (rev 7874) +++ trunk/matplotlib/lib/matplotlib/testing/compare.py 2009-10-12 13:30:32 UTC (rev 7875) @@ -95,23 +95,32 @@ converter['pdf'] = cmd converter['eps'] = cmd +if matplotlib.checkdep_inkscape() is not None: + cmd = lambda old, new: \ + ['inkscape', old, '--export-png=' + new] + converter['svg'] = cmd + def comparable_formats(): '''Returns the list of file formats that compare_images can compare on this system.''' return ['png'] + converter.keys() def convert(filename): - '''Convert the named file into a png file. + ''' + Convert the named file into a png file. Returns the name of the created file. ''' base, extension = filename.rsplit('.', 1) if extension not in converter: raise ImageComparisonFailure, "Don't know how to convert %s files to png" % extension newname = base + '_' + extension + '.png' + if not os.path.exists(filename): + raise IOError, "'%s' does not exist" % filename cmd = converter[extension](filename, newname) pipe = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) stdout, stderr = pipe.communicate() - if not os.path.exists(newname): + errcode = pipe.wait() + if not os.path.exists(newname) or errcode: msg = "Conversion command failed:\n%s\n" % ' '.join(cmd) if stdout: msg += "Standard output:\n%s\n" % stdout @@ -120,6 +129,33 @@ raise IOError, msg return newname +verifiers = { } + +def verify(filename): + """ + Verify the file through some sort of verification tool. + """ + if not os.path.exists(filename): + raise IOError, "'%s' does not exist" % filename + base, extension = filename.rsplit('.', 1) + verifier = verifiers.get(extension, None) + if verifier is not None: + cmd = verifier(filename) + pipe = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + stdout, stderr = pipe.communicate() + errcode = pipe.wait() + if errcode != 0: + msg = "File verification command failed:\n%s\n" % ' '.join(cmd) + if stdout: + msg += "Standard output:\n%s\n" % stdout + if stderr: + msg += "Standard error:\n%s\n" % stderr + raise IOError, msg + +if matplotlib.checkdep_xmllint(): + verifiers['svg'] = lambda filename: [ + 'xmllint', '--valid', '--nowarning', '--noout', filename] + def compare_images( expected, actual, tol, in_decorator=False ): '''Compare two image files - not the greatest, but fast and good enough. @@ -134,7 +170,7 @@ - expected The filename of the expected image. - actual The filename of the actual image. - tol The tolerance (a unitless float). This is used to - determinte the 'fuzziness' to use when comparing images. + determine the 'fuzziness' to use when comparing images. - in_decorator If called from image_comparison decorator, this should be True. (default=False) ''' @@ -151,10 +187,12 @@ else: return msg + verify(actual) + # Convert the image to png extension = expected.split('.')[-1] if extension != 'png': - expected, actual = convert(expected), convert(actual) + actual, expected = convert(actual), convert(expected) # open the image files and remove the alpha channel (if it exists) expectedImage = Image.open( expected ).convert("RGB") Modified: trunk/matplotlib/lib/matplotlib/testing/decorators.py =================================================================== --- trunk/matplotlib/lib/matplotlib/testing/decorators.py 2009-10-12 13:21:07 UTC (rev 7874) +++ trunk/matplotlib/lib/matplotlib/testing/decorators.py 2009-10-12 13:30:32 UTC (rev 7875) @@ -74,7 +74,7 @@ if extensions is None: # default extensions to test - extensions = ['png', 'pdf'] + extensions = ['png', 'pdf', 'svg'] # The multiple layers of defs are required because of how # parameterized decorators work, and because we want to turn the Added: trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_axes/axhspan_epoch.svg =================================================================== --- trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_axes/axhspan_epoch.svg (rev 0) +++ trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_axes/axhspan_epoch.svg 2009-10-12 13:30:32 UTC (rev 7875) @@ -0,0 +1,322 @@ +<?xml version="1.0" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Created with matplotlib (http://matplotlib.sourceforge.net/) --> +<svg width="576pt" height="432pt" viewBox="0 0 576 432" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + version="1.1" + id="svg1"> +<filter id="colorAdd"><feComposite in="SourceGraphic" in2="BackgroundImage" operator="arithmetic" k2="1" k3="1"/></filter> +<g id="figure1"> +<g id="patch1"> +<path style="fill: #ffffff; stroke: #ffffff; stroke-width: 1.000000; stroke-linejoin: round; stroke-linecap: square; opacity: 1.000000" d="M0.000000 432.000000L576.000000 432.000000L576.000000 0.000000 +L0.000000 0.000000L0.000000 432.000000"/> +</g> +<g id="axes1"> +<g id="patch2"> +<path style="fill: #ffffff; opacity: 1.000000" d="M72.000000 388.800000L518.400000 388.800000L518.400000 43.200000 +L72.000000 43.200000L72.000000 388.800000"/> +</g> +<g id="patch3"> +<defs> + <clipPath id="p50431ccdcb28178602d99d9270004dde"> +<rect x="72.000000" y="43.200000" width="446.400000" height="345.600000"/> + </clipPath> +</defs><path style="fill: #0000ff; stroke: #000000; stroke-width: 1.000000; stroke-linejoin: round; stroke-linecap: square; opacity: 0.250000" clip-path="url(#p50431ccdcb28178602d99d9270004dde)" d="M72.000000 231.709091L72.000000 200.290909L518.400000 200.290909 +L518.400000 231.709091L72.000000 231.709091"/> +</g> +<g id="matplotlib.axis1"> +<g id="xtick1"> +<g id="line2d1"> +<defs><path id="m30e32995789d870ad79a2e54c91cf9c6" d="M0.000000 0.000000L0.000000 -4.000000"/></defs> +<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m30e32995789d870ad79a2e54c91cf9c6" x="72.000000" y="388.800000"/> +</g></g> +<g id="line2d2"> +<defs><path id="m9281cae24120827b11d5ea8a7ad3e96b" d="M0.000000 0.000000L0.000000 4.000000"/></defs> +<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m9281cae24120827b11d5ea8a7ad3e96b" x="72.000000" y="43.200000"/> +</g></g> +<g id="text1"> +<defs> +<path id="c_7a2040fe3b94fcd41d0a72c84e93b115" d="M31.781250 -66.406250q-7.609375 0.000000 -11.453125 7.500000q-3.828125 7.484375 -3.828125 22.531250q0.000000 14.984375 3.828125 22.484375q3.843750 7.500000 11.453125 7.500000q7.671875 0.000000 11.500000 -7.500000q3.843750 -7.500000 3.843750 -22.484375q0.000000 -15.046875 -3.843750 -22.531250q-3.828125 -7.500000 -11.500000 -7.500000M31.781250 -74.218750q12.265625 0.000000 18.734375 9.703125q6.468750 9.687500 6.468750 28.140625q0.000000 18.406250 -6.468750 28.109375q-6.468750 9.687500 -18.734375 9.687500q-12.250000 0.000000 -18.718750 -9.687500q-6.468750 -9.703125 -6.468750 -28.109375q0.000000 -18.453125 6.468750 -28.140625q6.468750 -9.703125 18.718750 -9.703125"/> +<path id="c_ed3e21196fb739f392806f09ca0594ef" d="M10.687500 -12.406250l10.312500 0.000000l0.000000 12.406250l-10.312500 0.000000z"/> +</defs> +<g style="fill: #000000; opacity: 1.000000" transform="translate(63.250000,401.706250)scale(0.120000)"> +<use xlink:href="#c_7a2040fe3b94fcd41d0a72c84e93b115"/> +<use xlink:href="#c_ed3e21196fb739f392806f09ca0594ef" x="63.623047"/> +<use xlink:href="#c_7a2040fe3b94fcd41d0a72c84e93b115" x="95.410156"/> +</g> +</g> +</g> +<g id="xtick2"> +<g id="line2d3"> +<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m30e32995789d870ad79a2e54c91cf9c6" x="161.280000" y="388.800000"/> +</g></g> +<g id="line2d4"> +<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m9281cae24120827b11d5ea8a7ad3e96b" x="161.280000" y="43.200000"/> +</g></g> +<g id="text2"> +<defs> +<path id="c_ed3f3ed3ebfbd18bcb9c012009a68ad1" d="M19.187500 -8.296875l34.421875 0.000000l0.000000 8.296875l-46.281250 0.000000l0.000000 -8.296875q5.609375 -5.812500 15.296875 -15.593750q9.703125 -9.796875 12.187500 -12.640625q4.734375 -5.312500 6.609375 -9.000000q1.890625 -3.687500 1.890625 -7.250000q0.000000 -5.812500 -4.078125 -9.468750q-4.078125 -3.671875 -10.625000 -3.671875q-4.640625 0.000000 -9.796875 1.609375q-5.140625 1.609375 -11.000000 4.890625l0.000000 -9.968750q5.953125 -2.390625 11.125000 -3.609375q5.187500 -1.218750 9.484375 -1.218750q11.328125 0.000000 18.062500 5.671875q6.734375 5.656250 6.734375 15.125000q0.000000 4.500000 -1.687500 8.531250q-1.671875 4.015625 -6.125000 9.484375q-1.218750 1.421875 -7.765625 8.187500q-6.531250 6.765625 -18.453125 18.921875"/> +</defs> +<g style="fill: #000000; opacity: 1.000000" transform="translate(152.733125,401.706250)scale(0.120000)"> +<use xlink:href="#c_7a2040fe3b94fcd41d0a72c84e93b115"/> +<use xlink:href="#c_ed3e21196fb739f392806f09ca0594ef" x="63.623047"/> +<use xlink:href="#c_ed3f3ed3ebfbd18bcb9c012009a68ad1" x="95.410156"/> +</g> +</g> +</g> +<g id="xtick3"> +<g id="line2d5"> +<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m30e32995789d870ad79a2e54c91cf9c6" x="250.560000" y="388.800000"/> +</g></g> +<g id="line2d6"> +<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m9281cae24120827b11d5ea8a7ad3e96b" x="250.560000" y="43.200000"/> +</g></g> +<g id="text3"> +<defs> +<path id="c_a0416418d96557a09b8c1332d34883ba" d="M37.796875 -64.312500l-24.906250 38.921875l24.906250 0.000000zM35.203125 -72.906250l12.406250 0.000000l0.000000 47.515625l10.406250 0.000000l0.000000 8.203125l-10.406250 0.000000l0.000000 17.187500l-9.812500 0.000000l0.000000 -17.187500l-32.906250 0.000000l0.000000 -9.515625z"/> +</defs> +<g style="fill: #000000; opacity: 1.000000" transform="translate(241.747500,401.706250)scale(0.120000)"> +<use xlink:href="#c_7a2040fe3b94fcd41d0a72c84e93b115"/> +<use xlink:href="#c_ed3e21196fb739f392806f09ca0594ef" x="63.623047"/> +<use xlink:href="#c_a0416418d96557a09b8c1332d34883ba" x="95.410156"/> +</g> +</g> +</g> +<g id="xtick4"> +<g id="line2d7"> +<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m30e32995789d870ad79a2e54c91cf9c6" x="339.840000" y="388.800000"/> +</g></g> +<g id="line2d8"> +<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m9281cae24120827b11d5ea8a7ad3e96b" x="339.840000" y="43.200000"/> +</g></g> +<g id="text4"> +<defs> +<path id="c_cc8d6d580d1b10c8632f7a42cd53db8a" d="M33.015625 -40.375000q-6.640625 0.000000 -10.531250 4.546875q-3.875000 4.531250 -3.875000 12.437500q0.000000 7.859375 3.875000 12.437500q3.890625 4.562500 10.531250 4.562500q6.640625 0.000000 10.515625 -4.562500q3.875000 -4.578125 3.875000 -12.437500q0.000000 -7.906250 -3.875000 -12.437500q-3.875000 -4.546875 -10.515625 -4.546875M52.593750 -71.296875l0.000000 8.984375q-3.718750 -1.750000 -7.500000 -2.671875q-3.781250 -0.937500 -7.500000 -0.937500q-9.765625 0.000000 -14.921875 6.593750q-5.140625 6.593750 -5.875000 19.921875q2.875000 -4.250000 7.218750 -6.515625q4.359375 -2.265625 9.578125 -2.265625q10.984375 0.000000 17.359375 6.671875q6.375000 6.656250 6.375000 18.125000q0.000000 11.234375 -6.640625 18.031250q-6.640625 6.781250 -17.671875 6.781250q-12.656250 0.000000 -19.343750 -9.687500q-6.687500 -9.703125 -6.687500 -28.109375q0.000000 -17.281250 8.203125 -27.562500q8.203125 -10.281250 22.015625 -10.281250q3.718750 0.000000 7.500000 0.734375q3.781250 0.734375 7.890625 2.187500"/> +</defs> +<g style="fill: #000000; opacity: 1.000000" transform="translate(331.074375,401.706250)scale(0.120000)"> +<use xlink:href="#c_7a2040fe3b94fcd41d0a72c84e93b115"/> +<use xlink:href="#c_ed3e21196fb739f392806f09ca0594ef" x="63.623047"/> +<use xlink:href="#c_cc8d6d580d1b10c8632f7a42cd53db8a" x="95.410156"/> +</g> +</g> +</g> +<g id="xtick5"> +<g id="line2d9"> +<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m30e32995789d870ad79a2e54c91cf9c6" x="429.120000" y="388.800000"/> +</g></g> +<g id="line2d10"> +<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m9281cae24120827b11d5ea8a7ad3e96b" x="429.120000" y="43.200000"/> +</g></g> +<g id="text5"> +<defs> +<path id="c_bef35738d52871942e50b9de9b122bab" d="M31.781250 -34.625000q-7.031250 0.000000 -11.062500 3.765625q-4.015625 3.765625 -4.015625 10.343750q0.000000 6.593750 4.015625 10.359375q4.031250 3.765625 11.062500 3.765625q7.031250 0.000000 11.078125 -3.781250q4.062500 -3.796875 4.062500 -10.343750q0.000000 -6.578125 -4.031250 -10.343750q-4.015625 -3.765625 -11.109375 -3.765625M21.921875 -38.812500q-6.343750 -1.562500 -9.890625 -5.906250q-3.531250 -4.359375 -3.531250 -10.609375q0.000000 -8.734375 6.218750 -13.812500q6.234375 -5.078125 17.062500 -5.078125q10.890625 0.000000 17.093750 5.078125q6.203125 5.078125 6.203125 13.812500q0.000000 6.250000 -3.546875 10.609375q-3.531250 4.343750 -9.828125 5.906250q7.125000 1.656250 11.093750 6.500000q3.984375 4.828125 3.984375 11.796875q0.000000 10.609375 -6.468750 16.281250q-6.468750 5.656250 -18.531250 5.656250q-12.046875 0.000000 -18.531250 -5.656250q-6.468750 -5.671875 -6.468750 -16.281250q0.000000 -6.968750 4.000000 -11.796875q4.015625 -4.843750 11.140625 -6.500000M18.312500 -54.390625q0.000000 5.656250 3.531250 8.828125q3.546875 3.171875 9.937500 3.171875q6.359375 0.000000 9.937500 -3.171875q3.593750 -3.171875 3.593750 -8.828125q0.000000 -5.671875 -3.593750 -8.843750q-3.578125 -3.171875 -9.937500 -3.171875q-6.390625 0.000000 -9.937500 3.171875q-3.531250 3.171875 -3.531250 8.843750"/> +</defs> +<g style="fill: #000000; opacity: 1.000000" transform="translate(420.385625,401.706250)scale(0.120000)"> +<use xlink:href="#c_7a2040fe3b94fcd41d0a72c84e93b115"/> +<use xlink:href="#c_ed3e21196fb739f392806f09ca0594ef" x="63.623047"/> +<use xlink:href="#c_bef35738d52871942e50b9de9b122bab" x="95.410156"/> +</g> +</g> +</g> +<g id="xtick6"> +<g id="line2d11"> +<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m30e32995789d870ad79a2e54c91cf9c6" x="518.400000" y="388.800000"/> +</g></g> +<g id="line2d12"> +<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m9281cae24120827b11d5ea8a7ad3e96b" x="518.400000" y="43.200000"/> +</g></g> +<g id="text6"> +<defs> +<path id="c_42baa63129a918535c52adb20d687ea7" d="M12.406250 -8.296875l16.109375 0.000000l0.000000 -55.625000l-17.531250 3.515625l0.000000 -8.984375l17.437500 -3.515625l9.859375 0.000000l0.000000 64.609375l16.109375 0.000000l0.000000 8.296875l-41.984375 0.000000z"/> +</defs> +<g style="fill: #000000; opacity: 1.000000" transform="translate(509.907812,401.706250)scale(0.120000)"> +<use xlink:href="#c_42baa63129a918535c52adb20d687ea7"/> +<use xlink:href="#c_ed3e21196fb739f392806f09ca0594ef" x="63.623047"/> +<use xlink:href="#c_7a2040fe3b94fcd41d0a72c84e93b115" x="95.410156"/> +</g> +</g> +</g> +</g> +<g id="matplotlib.axis2"> +<g id="ytick1"> +<g id="line2d13"> +<defs><path id="m3400efa6b1638b3fea9e19e898273957" d="M0.000000 0.000000L4.000000 0.000000"/></defs> +<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m3400efa6b1638b3fea9e19e898273957" x="72.000000" y="357.381818"/> +</g></g> +<g id="line2d14"> +<defs><path id="m20b58b2501143cb5e0a5e8f1ef6f1643" d="M0.000000 0.000000L-4.000000 0.000000"/></defs> +<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m20b58b2501143cb5e0a5e8f1ef6f1643" x="518.400000" y="357.381818"/> +</g></g> +<g id="text7"> +<defs> +<path id="c_54624f4845a86755fe6d2d7ebbf10290" d="M9.812500 -72.906250l9.859375 0.000000l0.000000 67.828125q0.000000 13.187500 -5.000000 19.140625q-5.000000 5.953125 -16.093750 5.953125l-3.750000 0.000000l0.000000 -8.296875l3.078125 0.000000q6.531250 0.000000 9.218750 -3.671875q2.687500 -3.656250 2.687500 -13.125000z"/> +<path id="c_01d93a582460e35a7945ca50d148ffeb" d="M34.281250 -27.484375q-10.890625 0.000000 -15.093750 2.484375q-4.203125 2.484375 -4.203125 8.500000q0.000000 4.781250 3.156250 7.593750q3.156250 2.796875 8.562500 2.796875q7.484375 0.000000 12.000000 -5.296875q4.515625 -5.296875 4.515625 -14.078125l0.000000 -2.000000zM52.203125 -31.203125l0.000000 31.203125l-8.984375 0.000000l0.000000 -8.296875q-3.078125 4.968750 -7.671875 7.343750q-4.593750 2.375000 -11.234375 2.375000q-8.390625 0.000000 -13.359375 -4.718750q-4.953125 -4.718750 -4.953125 -12.625000q0.000000 -9.218750 6.171875 -13.906250q6.187500 -4.687500 18.437500 -4.687500l12.609375 0.000000l0.000000 -0.890625q0.000000 -6.203125 -4.078125 -9.593750q-4.078125 -3.390625 -11.453125 -3.390625q-4.687500 0.000000 -9.140625 1.125000q-4.437500 1.125000 -8.531250 3.375000l0.000000 -8.312500q4.921875 -1.906250 9.562500 -2.843750q4.640625 -0.953125 9.031250 -0.953125q11.875000 0.000000 17.734375 6.156250q5.859375 6.140625 5.859375 18.640625"/> +<path id="c_fe791a90f5471e2ab20a5ed41a7fa451" d="M54.890625 -33.015625l0.000000 33.015625l-8.984375 0.000000l0.000000 -32.718750q0.000000 -7.765625 -3.031250 -11.609375q-3.031250 -3.859375 -9.078125 -3.859375q-7.281250 0.000000 -11.484375 4.640625q-4.203125 4.625000 -4.203125 12.640625l0.000000 30.906250l-9.031250 0.000000l0.000000 -54.687500l9.031250 0.000000l0.000000 8.500000q3.234375 -4.937500 7.593750 -7.375000q4.375000 -2.437500 10.093750 -2.437500q9.421875 0.000000 14.250000 5.828125q4.843750 5.828125 4.843750 17.156250"/> +<path id="c_d41d8cd98f00b204e9800998ecf8427e" d=""/> +<path id="c_956f18cfdaf972f35a6c2b4aaac2532b" d="M8.203125 -72.906250l46.875000 0.000000l0.000000 4.203125l-26.468750 68.703125l-10.296875 0.000000l24.906250 -64.593750l-35.015625 0.000000z"/> +<path id="c_cd96f817f3cab988d24a2b49a5577fe6" d="M10.984375 -1.515625l0.000000 -8.984375q3.718750 1.765625 7.515625 2.687500q3.812500 0.921875 7.484375 0.921875q9.765625 0.000000 14.906250 -6.562500q5.156250 -6.562500 5.890625 -19.953125q-2.828125 4.203125 -7.187500 6.453125q-4.343750 2.250000 -9.609375 2.250000q-10.937500 0.000000 -17.312500 -6.609375q-6.375000 -6.625000 -6.375000 -18.109375q0.000000 -11.218750 6.640625 -18.000000q6.640625 -6.796875 17.671875 -6.796875q12.656250 0.000000 19.312500 9.703125q6.671875 9.687500 6.671875 28.140625q0.000000 17.234375 -8.187500 27.515625q-8.171875 10.281250 -21.984375 10.281250q-3.718750 0.000000 -7.531250 -0.734375q-3.796875 -0.734375 -7.906250 -2.203125M30.609375 -32.421875q6.640625 0.000000 10.515625 -4.531250q3.890625 -4.546875 3.890625 -12.468750q0.000000 -7.859375 -3.890625 -12.421875q-3.875000 -4.562500 -10.515625 -4.562500q-6.640625 0.000000 -10.515625 4.562500q-3.875000 4.562500 -3.875000 12.421875q0.000000 7.921875 3.875000 12.468750q3.875000 4.531250 10.515625 4.531250"/> +</defs> +<g style="fill: #000000; opacity: 1.000000" transform="translate(-3.765625,360.631818)scale(0.120000)"> +<use xlink:href="#c_54624f4845a86755fe6d2d7ebbf10290"/> +<use xlink:href="#c_01d93a582460e35a7945ca50d148ffeb" x="29.492188"/> +<use xlink:href="#c_fe791a90f5471e2ab20a5ed41a7fa451" x="90.771484"/> +<use xlink:href="#c_d41d8cd98f00b204e9800998ecf8427e" x="154.150391"/> +<use xlink:href="#c_42baa63129a918535c52adb20d687ea7" x="185.937500"/> +<use xlink:href="#c_956f18cfdaf972f35a6c2b4aaac2532b" x="249.560547"/> +<use xlink:href="#c_d41d8cd98f00b204e9800998ecf8427e" x="313.183594"/> +<use xlink:href="#c_ed3f3ed3ebfbd18bcb9c012009a68ad1" x="344.970703"/> +<use xlink:href="#c_7a2040fe3b94fcd41d0a72c84e93b115" x="408.593750"/> +<use xlink:href="#c_7a2040fe3b94fcd41d0a72c84e93b115" x="472.216797"/> +<use xlink:href="#c_cd96f817f3cab988d24a2b49a5577fe6" x="535.839844"/> +</g> +</g> +</g> +<g id="ytick2"> +<g id="line2d15"> +<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m3400efa6b1638b3fea9e19e898273957" x="72.000000" y="294.545455"/> +</g></g> +<g id="line2d16"> +<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m20b58b2501143cb5e0a5e8f1ef6f1643" x="518.400000" y="294.545455"/> +</g></g> +<g id="text8"> +<g style="fill: #000000; opacity: 1.000000" transform="translate(-3.765625,297.795455)scale(0.120000)"> +<use xlink:href="#c_54624f4845a86755fe6d2d7ebbf10290"/> +<use xlink:href="#c_01d93a582460e35a7945ca50d148ffeb" x="29.492188"/> +<use xlink:href="#c_fe791a90f5471e2ab20a5ed41a7fa451" x="90.771484"/> +<use xlink:href="#c_d41d8cd98f00b204e9800998ecf8427e" x="154.150391"/> +<use xlink:href="#c_42baa63129a918535c52adb20d687ea7" x="185.937500"/> +<use xlink:href="#c_cd96f817f3cab988d24a2b49a5577fe6" x="249.560547"/> +<use xlink:href="#c_d41d8cd98f00b204e9800998ecf8427e" x="313.183594"/> +<use xlink:href="#c_ed3f3ed3ebfbd18bcb9c012009a68ad1" x="344.970703"/> +<use xlink:href="#c_7a2040fe3b94fcd41d0a72c84e93b115" x="408.593750"/> +<use xlink:href="#c_7a2040fe3b94fcd41d0a72c84e93b115" x="472.216797"/> +<use xlink:href="#c_cd96f817f3cab988d24a2b49a5577fe6" x="535.839844"/> +</g> +</g> +</g> +<g id="ytick3"> +<g id="line2d17"> +<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m3400efa6b1638b3fea9e19e898273957" x="72.000000" y="231.709091"/> +</g></g> +<g id="line2d18"> +<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m20b58b2501143cb5e0a5e8f1ef6f1643" x="518.400000" y="231.709091"/> +</g></g> +<g id="text9"> +<g style="fill: #000000; opacity: 1.000000" transform="translate(-3.765625,234.959091)scale(0.120000)"> +<use xlink:href="#c_54624f4845a86755fe6d2d7ebbf10290"/> +<use xlink:href="#c_01d93a582460e35a7945ca50d148ffeb" x="29.492188"/> +<use xlink:href="#c_fe791a90f5471e2ab20a5ed41a7fa451" x="90.771484"/> +<use xlink:href="#c_d41d8cd98f00b204e9800998ecf8427e" x="154.150391"/> +<use xlink:href="#c_ed3f3ed3ebfbd18bcb9c012009a68ad1" x="185.937500"/> +<use xlink:href="#c_42baa63129a918535c52adb20d687ea7" x="249.560547"/> +<use xlink:href="#c_d41d8cd98f00b204e9800998ecf8427e" x="313.183594"/> +<use xlink:href="#c_ed3f3ed3ebfbd18bcb9c012009a68ad1" x="344.970703"/> +<use xlink:href="#c_7a2040fe3b94fcd41d0a72c84e93b115" x="408.593750"/> +<use xlink:href="#c_7a2040fe3b94fcd41d0a72c84e93b115" x="472.216797"/> +<use xlink:href="#c_cd96f817f3cab988d24a2b49a5577fe6" x="535.839844"/> +</g> +</g> +</g> +<g id="ytick4"> +<g id="line2d19"> +<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m3400efa6b1638b3fea9e19e898273957" x="72.000000" y="168.872727"/> +</g></g> +<g id="line2d20"> +<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m20b58b2501143cb5e0a5e8f1ef6f1643" x="518.400000" y="168.872727"/> +</g></g> +<g id="text10"> +<defs> +<path id="c_3dcfa38a02242cb63ec6726c6e70be7a" d="M40.578125 -39.312500q7.078125 1.515625 11.046875 6.312500q3.984375 4.781250 3.984375 11.812500q0.000000 10.781250 -7.421875 16.703125q-7.421875 5.906250 -21.093750 5.906250q-4.578125 0.000000 -9.437500 -0.906250q-4.859375 -0.906250 -10.031250 -2.718750l0.000000 -9.515625q4.093750 2.390625 8.968750 3.609375q4.890625 1.218750 10.218750 1.218750q9.265625 0.000000 14.125000 -3.656250q4.859375 -3.656250 4.859375 -10.640625q0.000000 -6.453125 -4.515625 -10.078125q-4.515625 -3.640625 -12.562500 -3.640625l-8.500000 0.000000l0.000000 -8.109375l8.890625 0.000000q7.265625 0.000000 11.125000 -2.906250q3.859375 -2.906250 3.859375 -8.375000q0.000000 -5.609375 -3.984375 -8.609375q-3.968750 -3.015625 -11.390625 -3.015625q-4.062500 0.000000 -8.703125 0.890625q-4.640625 0.875000 -10.203125 2.718750l0.000000 -8.781250q5.625000 -1.562500 10.531250 -2.343750q4.906250 -0.781250 9.250000 -0.781250q11.234375 0.000000 17.765625 5.109375q6.546875 5.093750 6.546875 13.781250q0.000000 6.062500 -3.468750 10.234375q-3.468750 4.171875 -9.859375 5.781250"/> +</defs> +<g style="fill: #000000; opacity: 1.000000" transform="translate(-3.765625,172.122727)scale(0.120000)"> +<use xlink:href="#c_54624f4845a86755fe6d2d7ebbf10290"/> +<use xlink:href="#c_01d93a582460e35a7945ca50d148ffeb" x="29.492188"/> +<use xlink:href="#c_fe791a90f5471e2ab20a5ed41a7fa451" x="90.771484"/> +<use xlink:href="#c_d41d8cd98f00b204e9800998ecf8427e" x="154.150391"/> +<use xlink:href="#c_ed3f3ed3ebfbd18bcb9c012009a68ad1" x="185.937500"/> +<use xlink:href="#c_3dcfa38a02242cb63ec6726c6e70be7a" x="249.560547"/> +<use xlink:href="#c_d41d8cd98f00b204e9800998ecf8427e" x="313.183594"/> +<use xlink:href="#c_ed3f3ed3ebfbd18bcb9c012009a68ad1" x="344.970703"/> +<use xlink:href="#c_7a2040fe3b94fcd41d0a72c84e93b115" x="408.593750"/> +<use xlink:href="#c_7a2040fe3b94fcd41d0a72c84e93b115" x="472.216797"/> +<use xlink:href="#c_cd96f817f3cab988d24a2b49a5577fe6" x="535.839844"/> +</g> +</g> +</g> +<g id="ytick5"> +<g id="line2d21"> +<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m3400efa6b1638b3fea9e19e898273957" x="72.000000" y="106.036364"/> +</g></g> +<g id="line2d22"> +<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m20b58b2501143cb5e0a5e8f1ef6f1643" x="518.400000" y="106.036364"/> +</g></g> +<g id="text11"> +<defs> +<path id="c_1260a2df50f305f3db244e29828f968e" d="M10.796875 -72.906250l38.718750 0.000000l0.000000 8.312500l-29.687500 0.000000l0.000000 17.859375q2.140625 -0.734375 4.281250 -1.093750q2.156250 -0.359375 4.312500 -0.359375q12.203125 0.000000 19.328125 6.687500q7.140625 6.687500 7.140625 18.109375q0.000000 11.765625 -7.328125 18.296875q-7.328125 6.515625 -20.656250 6.515625q-4.593750 0.000000 -9.359375 -0.781250q-4.750000 -0.781250 -9.828125 -2.343750l0.000000 -9.921875q4.390625 2.390625 9.078125 3.562500q4.687500 1.171875 9.906250 1.171875q8.453125 0.000000 13.375000 -4.437500q4.937500 -4.437500 4.937500 -12.062500q0.000000 -7.609375 -4.937500 -12.046875q-4.921875 -4.453125 -13.375000 -4.453125q-3.953125 0.000000 -7.890625 0.875000q-3.921875 0.875000 -8.015625 2.734375z"/> +</defs> +<g style="fill: #000000; opacity: 1.000000" transform="translate(-3.765625,109.286364)scale(0.120000)"> +<use xlink:href="#c_54624f4845a86755fe6d2d7ebbf10290"/> +<use xlink:href="#c_01d93a582460e35a7945ca50d148ffeb" x="29.492188"/> +<use xlink:href="#c_fe791a90f5471e2ab20a5ed41a7fa451" x="90.771484"/> +<use xlink:href="#c_d41d8cd98f00b204e9800998ecf8427e" x="154.150391"/> +<use xlink:href="#c_ed3f3ed3ebfbd18bcb9c012009a68ad1" x="185.937500"/> +<use xlink:href="#c_1260a2df50f305f3db244e29828f968e" x="249.560547"/> +<use xlink:href="#c_d41d8cd98f00b204e9800998ecf8427e" x="313.183594"/> +<use xlink:href="#c_ed3f3ed3ebfbd18bcb9c012009a68ad1" x="344.970703"/> +<use xlink:href="#c_7a2040fe3b94fcd41d0a72c84e93b115" x="408.593750"/> +<use xlink:href="#c_7a2040fe3b94fcd41d0a72c84e93b115" x="472.216797"/> +<use xlink:href="#c_cd96f817f3cab988d24a2b49a5577fe6" x="535.839844"/> +</g> +</g> +</g> +<g id="ytick6"> +<g id="line2d23"> +<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m3400efa6b1638b3fea9e19e898273957" x="72.000000" y="43.200000"/> +</g></g> +<g id="line2d24"> +<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m20b58b2501143cb5e0a5e8f1ef6f1643" x="518.400000" y="43.200000"/> +</g></g> +<g id="text12"> +<g style="fill: #000000; opacity: 1.000000" transform="translate(-3.765625,46.450000)scale(0.120000)"> +<use xlink:href="#c_54624f4845a86755fe6d2d7ebbf10290"/> +<use xlink:href="#c_01d93a582460e35a7945ca50d148ffeb" x="29.492188"/> +<use xlink:href="#c_fe791a90f5471e2ab20a5ed41a7fa451" x="90.771484"/> +<use xlink:href="#c_d41d8cd98f00b204e9800998ecf8427e" x="154.150391"/> +<use xlink:href="#c_ed3f3ed3ebfbd18bcb9c012009a68ad1" x="185.937500"/> +<use xlink:href="#c_956f18cfdaf972f35a6c2b4aaac2532b" x="249.560547"/> +<use xlink:href="#c_d41d8cd98f00b204e9800998ecf8427e" x="313.183594"/> +<use xlink:href="#c_ed3f3ed3ebfbd18bcb9c012009a68ad1" x="344.970703"/> +<use xlink:href="#c_7a2040fe3b94fcd41d0a72c84e93b115" x="408.593750"/> +<use xlink:href="#c_7a2040fe3b94fcd41d0a72c84e93b115" x="472.216797"/> +<use xlink:href="#c_cd96f817f3cab988d24a2b49a5577fe6" x="535.839844"/> +</g> +</g> +</g> +<g id="text13"> +<defs> +<path id="c_dbe439baa035de1a298d0549b22269d8" d="M9.812500 -72.906250l46.093750 0.000000l0.000000 8.312500l-36.234375 0.000000l0.000000 21.578125l34.718750 0.000000l0.000000 8.296875l-34.718750 0.000000l0.000000 26.421875l37.109375 0.000000l0.000000 8.296875l-46.968750 0.000000z"/> +<path id="c_9e4b30cbdf32072672ded72e9074c4c9" d="M-0.296875 -72.906250l61.671875 0.000000l0.000000 8.312500l-25.875000 0.000000l0.000000 64.593750l-9.906250 0.000000l0.000000 -64.593750l-25.890625 0.000000z"/> +</defs> +<g style="fill: #000000; opacity: 1.000000" transform="translate(-8.765625,222.882812)rotate(-90.0)scale(0.120000)"> +<use xlink:href="#c_dbe439baa035de1a298d0549b22269d8"/> +<use xlink:href="#c_9e4b30cbdf32072672ded72e9074c4c9" x="63.183594"/> +</g> +</g> +</g> +<g id="patch4"> +<path style="fill: none; stroke: #000000; stroke-width: 1.000000; stroke-linejoin: round; stroke-linecap: square; opacity: 1.000000" d="M72.000000 43.200000L518.400000 43.200000"/> +</g> +<g id="patch5"> +<path style="fill: none; stroke: #000000; stroke-width: 1.000000; stroke-linejoin: round; stroke-linecap: square; opacity: 1.000000" d="M518.400000 388.800000L518.400000 43.200000"/> +</g> +<g id="patch6"> +<path style="fill: none; stroke: #000000; stroke-width: 1.000000; stroke-linejoin: round; stroke-linecap: square; opacity: 1.000000" d="M72.000000 388.800000L518.400000 388.800000"/> +</g> +<g id="patch7"> +<path style="fill: none; stroke: #000000; stroke-width: 1.000000; stroke-linejoin: round; stroke-linecap: square; opacity: 1.000000" d="M72.000000 388.800000L72.000000 43.200000"/> +</g> +</g> +</g> +</svg> Added: trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_axes/axvspan_epoch.svg =================================================================== --- trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_axes/axvspan_epoch.svg (rev 0) +++ trunk/matplotlib/lib/matplotlib/tests/baseline_images/test_axes/axvspan_epoch.svg 2009-10-12 13:30:32 UTC (rev 7875) @@ -0,0 +1,318 @@ +<?xml version="1.0" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Created with matplotlib (http://matplotlib.sourceforge.net/) --> +<svg width="576pt" height="432pt" viewBox="0 0 576 432" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + version="1.1" + id="svg1"> +<filter id="colorAdd"><feComposite in="SourceGraphic" in2="BackgroundImage" operator="arithmetic" k2="1" k3="1"/></filter> +<g id="figure1"> +<g id="patch1"> +<path style="fill: #ffffff; stroke: #ffffff; stroke-width: 1.000000; stroke-linejoin: round; stroke-linecap: square; opacity: 1.000000" d="M0.000000 432.000000L576.000000 432.000000L576.000000 0.000000 +L0.000000 0.000000L0.000000 432.000000"/> +</g> +<g id="axes1"> +<g id="patch2"> +<path style="fill: #ffffff; opacity: 1.000000" d="M72.000000 388.800000L518.400000 388.800000L518.400000 43.200000 +L72.000000 43.200000L72.000000 388.800000"/> +</g> +<g id="patch3"> +<defs> + <clipPath id="p50431ccdcb28178602d99d9270004dde"> +<rect x="72.000000" y="43.200000" width="446.400000" height="345.600000"/> + </clipPath> +</defs><path style="fill: #0000ff; stroke: #000000; stroke-width: 1.000000; stroke-linejoin: round; stroke-linecap: square; opacity: 0.250000" clip-path="url(#p50431ccdcb28178602d99d9270004dde)" d="M274.909091 388.800000L274.909091 43.200000L315.490909 43.200000 +L315.490909 388.800000L274.909091 388.800000"/> +</g> +<g id="matplotlib.axis1"> +<g id="xtick1"> +<g id="line2d1"> +<defs><path id="m30e32995789d870ad79a2e54c91cf9c6" d="M0.000000 0.000000L0.000000 -4.000000"/></defs> +<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m30e32995789d870ad79a2e54c91cf9c6" x="112.581818" y="388.800000"/> +</g></g> +<g id="line2d2"> +<defs><path id="m9281cae24120827b11d5ea8a7ad3e96b" d="M0.000000 0.000000L0.000000 4.000000"/></defs> +<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m9281cae24120827b11d5ea8a7ad3e96b" x="112.581818" y="43.200000"/> +</g></g> +<g id="text1"> +<defs> +<path id="c_54624f4845a86755fe6d2d7ebbf10290" d="M9.812500 -72.906250l9.859375 0.000000l0.000000 67.828125q0.000000 13.187500 -5.000000 19.140625q-5.000000 5.953125 -16.093750 5.953125l-3.750000 0.000000l0.000000 -8.296875l3.078125 0.000000q6.531250 0.000000 9.218750 -3.671875q2.687500 -3.656250 2.687500 -13.125000z"/> +<path id="c_01d93a582460e35a7945ca50d148ffeb" d="M34.281250 -27.484375q-10.890625 0.000000 -15.093750 2.484375q-4.203125 2.484375 -4.203125 8.500000q0.000000 4.781250 3.156250 7.593750q3.156250 2.796875 8.562500 2.796875q7.484375 0.000000 12.000000 -5.296875q4.515625 -5.296875 4.515625 -14.078125l0.000000 -2.000000zM52.203125 -31.203125l0.000000 31.203125l-8.984375 0.000000l0.000000 -8.296875q-3.078125 4.968750 -7.671875 7.343750q-4.593750 2.375000 -11.234375 2.375000q-8.390625 0.000000 -13.359375 -4.718750q-4.953125 -4.718750 -4.953125 -12.625000q0.000000 -9.218750 6.171875 -13.906250q6.187500 -4.687500 18.437500 -4.687500l12.609375 0.000000l0.000000 -0.890625q0.000000 -6.203125 -4.078125 -9.593750q-4.078125 -3.390625 -11.453125 -3.390625q-4.687500 0.000000 -9.140625 1.125000q-4.437500 1.125000 -8.531250 3.375000l0.000000 -8.312500q4.921875 -1.906250 9.562500 -2.843750q4.640625 -0.953125 9.031250 -0.953125q11.875000 0.000000 17.734375 6.156250q5.859375 6.140625 5.859375 18.640625"/> +<path id="c_fe791a90f5471e2ab20a5ed41a7fa451" d="M54.890625 -33.015625l0.000000 33.015625l-8.984375 0.000000l0.000000 -32.718750q0.000000 -7.765625 -3.031250 -11.609375q-3.031250 -3.859375 -9.078125 -3.859375q-7.281250 0.000000 -11.484375 4.640625q-4.203125 4.625000 -4.203125 12.640625l0.000000 30.906250l-9.031250 0.000000l0.000000 -54.687500l9.031250 0.000000l0.000000 8.500000q3.234375 -4.937500 7.593750 -7.375000q4.375000 -2.437500 10.093750 -2.437500q9.421875 0.000000 14.250000 5.828125q4.843750 5.828125 4.843750 17.156250"/> +<path id="c_d41d8cd98f00b204e9800998ecf8427e" d=""/> +<path id="c_42baa63129a918535c52adb20d687ea7" d="M12.406250 -8.296875l16.109375 0.000000l0.000000 -55.625000l-17.531250 3.515625l0.000000 -8.984375l17.437500 -3.515625l9.859375 0.000000l0.000000 64.609375l16.109375 0.000000l0.000000 8.296875l-41.984375 0.000000z"/> +<path id="c_956f18cfdaf972f35a6c2b4aaac2532b" d="M8.203125 -72.906250l46.875000 0.000000l0.000000 4.203125l-26.468750 68.703125l-10.296875 0.000000l24.906250 -64.593750l-35.015625 0.000000z"/> +<path id="c_ed3f3ed3ebfbd18bcb9c012009a68ad1" d="M19.187500 -8.296875l34.421875 0.000000l0.000000 8.296875l-46.281250 0.000000l0.000000 -8.296875q5.609375 -5.812500 15.296875 -15.593750q9.703125 -9.796875 12.187500 -12.640625q4.734375 -5.312500 6.609375 -9.000000q1.890625 -3.687500 1.890625 -7.250000q0.000000 -5.812500 -4.078125 -9.468750q-4.078125 -3.671875 -10.625000 -3.671875q-4.640625 0.000000 -9.796875 1.609375q-5.140625 1.609375 -11.000000 4.890625l0.000000 -9.968750q5.953125 -2.390625 11.125000 -3.609375q5.187500 -1.218750 9.484375 -1.218750q11.328125 0.000000 18.062500 5.671875q6.734375 5.656250 6.734375 15.125000q0.000000 4.500000 -1.687500 8.531250q-1.671875 4.015625 -6.125000 9.484375q-1.218750 1.421875 -7.765625 8.187500q-6.531250 6.765625 -18.453125 18.921875"/> +<path id="c_7a2040fe3b94fcd41d0a72c84e93b115" d="M31.781250 -66.406250q-7.609375 0.000000 -11.453125 7.500000q-3.828125 7.484375 -3.828125 22.531250q0.000000 14.984375 3.828125 22.484375q3.843750 7.500000 11.453125 7.500000q7.671875 0.000000 11.500000 -7.500000q3.843750 -7.500000 3.843750 -22.484375q0.000000 -15.046875 -3.843750 -22.531250q-3.828125 -7.500000 -11.500000 -7.500000M31.781250 -74.218750q12.265625 0.000000 18.734375 9.703125q6.468750 9.687500 6.468750 28.140625q0.000000 18.406250 -6.468750 28.109375q-6.468750 9.687500 -18.734375 9.687500q-12.250000 0.000000 -18.718750 -9.687500q-6.468750 -9.703125 -6.468750 -28.109375q0.000000 -18.453125 6.468750 -28.140625q6.468750 -9.703125 18.718750 -9.703125"/> +<path id="c_cd96f817f3cab988d24a2b49a5577fe6" d="M10.984375 -1.515625l0.000000 -8.984375q3.718750 1.765625 7.515625 2.687500q3.812500 0.921875 7.484375 0.921875q9.765625 0.000000 14.906250 -6.562500q5.156250 -6.562500 5.890625 -19.953125q-2.828125 4.203125 -7.187500 6.453125q-4.343750 2.250000 -9.609375 2.250000q-10.937500 0.000000 -17.312500 -6.609375q-6.375000 -6.625000 -6.375000 -18.109375q0.000000 -11.218750 6.640625 -18.000000q6.640625 -6.796875 17.671875 -6.796875q12.656250 0.000000 19.312500 9.703125q6.671875 9.687500 6.671875 28.140625q0.000000 17.234375 -8.187500 27.515625q-8.171875 10.281250 -21.984375 10.281250q-3.718750 0.000000 -7.531250 -0.734375q-3.796875 -0.734375 -7.906250 -2.203125M30.609375 -32.421875q6.640625 0.000000 10.515625 -4.531250q3.890625 -4.546875 3.890625 -12.468750q0.000000 -7.859375 -3.890625 -12.421875q-3.875000 -4.562500 -10.515625 -4.562500q-6.640625 0.000000 -10.515625 4.562500q-3.875000 4.562500 -3.875000 12.421875q0.000000 7.921875 3.875000 12.468750q3.875000 4.531250 10.515625 4.531250"/> +</defs> +<g style="fill: #000000; opacity: 1.000000" transform="translate(76.699006,401.706250)scale(0.120000)"> +<use xlink:href="#c_54624f4845a86755fe6d2d7ebbf10290"/> +<use xlink:href="#c_01d93a582460e35a7945ca50d148ffeb" x="29.492188"/> +<use xlink:href="#c_fe791a90f5471e2ab20a5ed41a7fa451" x="90.771484"/> +<use xlink:href="#c_d41d8cd98f00b204e9800998ecf8427e" x="154.150391"/> +<use xlink:href="#c_42baa63129a918535c52adb20d687ea7" x="185.937500"/> +<use xlink:href="#c_956f18cfdaf972f35a6c2b4aaac2532b" x="249.560547"/> +<use xlink:href="#c_d41d8cd98f00b204e9800998ecf8427e" x="313.183594"/> +<use xlink:href="#c_ed3f3ed3ebfbd18bcb9c012009a68ad1" x="344.970703"/> +<use xlink:href="#c_7a2040fe3b94fcd41d0a72c84e93b115" x="408.593750"/> +<use xlink:href="#c_7a2040fe3b94fcd41d0a72c84e93b115" x="472.216797"/> +<use xlink:href="#c_cd96f817f3cab988d24a2b49a5577fe6" x="535.839844"/> +</g> +</g> +</g> +<g id="xtick2"> +<g id="line2d3"> +<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m30e32995789d870ad79a2e54c91cf9c6" x="193.745455" y="388.800000"/> +</g></g> +<g id="line2d4"> +<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m9281cae24120827b11d5ea8a7ad3e96b" x="193.745455" y="43.200000"/> +</g></g> +<g id="text2"> +<g style="fill: #000000; opacity: 1.000000" transform="translate(157.862642,401.706250)scale(0.120000)"> +<use xlink:href="#c_54624f4845a86755fe6d2d7ebbf10290"/> +<use xlink:href="#c_01d93a582460e35a7945ca50d148ffeb" x="29.492188"/> +<use xlink:href="#c_fe791a90f5471e2ab20a5ed41a7fa451" x="90.771484"/> +<use xlink:href="#c_d41d8cd98f00b204e9800998ecf8427e" x="154.150391"/> +<use xlink:href="#c_42baa63129a918535c52adb20d687ea7" x="185.937500"/> +<use xlink:href="#c_cd96f817f3cab988d24a2b49a5577fe6" x="249.560547"/> +<use xlink:href="#c_d41d8cd98f00b204e9800998ecf8427e" x="313.183594"/> +<use xlink:href="#c_ed3f3ed3ebfbd18bcb9c012009a68ad1" x="344.970703"/> +<use xlink:href="#c_7a2040fe3b94fcd41d0a72c84e93b115" x="408.593750"/> +<use xlink:href="#c_7a2040fe3b94fcd41d0a72c84e93b115" x="472.216797"/> +<use xlink:href="#c_cd96f817f3cab988d24a2b49a5577fe6" x="535.839844"/> +</g> +</g> +</g> +<g id="xtick3"> +<g id="line2d5"> +<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m30e32995789d870ad79a2e54c91cf9c6" x="274.909091" y="388.800000"/> +</g></g> +<g id="line2d6"> +<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m9281cae24120827b11d5ea8a7ad3e96b" x="274.909091" y="43.200000"/> +</g></g> +<g id="text3"> +<g style="fill: #000000; opacity: 1.000000" transform="translate(239.026278,401.706250)scale(0.120000)"> +<use xlink:href="#c_54624f4845a86755fe6d2d7ebbf10290"/> +<use xlink:href="#c_01d93a582460e35a7945ca50d148ffeb" x="29.492188"/> +<use xlink:href="#c_fe791a90f5471e2ab20a5ed41a7fa451" x="90.771484"/> +<use xlink:href="#c_d41d8cd98f00b204e9800998ecf8427e" x="154.150391"/> +<use xlink:href="#c_ed3f3ed3ebfbd18bcb9c012009a68ad1" x="185.937500"/> +<use xlink:href="#c_42baa63129a918535c52adb20d687ea7" x="249.560547"/> +<use xlink:href="#c_d41d8cd98f00b204e9800998ecf8427e" x="313.183594"/> +<use xlink:href="#c_ed3f3ed3ebfbd18bcb9c012009a68ad1" x="344.970703"/> +<use xlink:href="#c_7a2040fe3b94fcd41d0a72c84e93b115" x="408.593750"/> +<use xlink:href="#c_7a2040fe3b94fcd41d0a72c84e93b115" x="472.216797"/> +<use xlink:href="#c_cd96f817f3cab988d24a2b49a5577fe6" x="535.839844"/> +</g> +</g> +</g> +<g id="xtick4"> +<g id="line2d7"> +<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m30e32995789d870ad79a2e54c91cf9c6" x="356.072727" y="388.800000"/> +</g></g> +<g id="line2d8"> +<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m9281cae24120827b11d5ea8a7ad3e96b" x="356.072727" y="43.200000"/> +</g></g> +<g id="text4"> +<defs> +<path id="c_3dcfa38a02242cb63ec6726c6e70be7a" d="M40.578125 -39.312500q7.078125 1.515625 11.046875 6.312500q3.984375 4.781250 3.984375 11.812500q0.000000 10.781250 -7.421875 16.703125q-7.421875 5.906250 -21.093750 5.906250q-4.578125 0.000000 -9.437500 -0.906250q-4.859375 -0.906250 -10.031250 -2.718750l0.000000 -9.515625q4.093750 2.390625 8.968750 3.609375q4.890625 1.218750 10.218750 1.218750q9.265625 0.000000 14.125000 -3.656250q4.859375 -3.656250 4.859375 -10.640625q0.000000 -6.453125 -4.515625 -10.078125q-4.515625 -3.640625 -12.562500 -3.640625l-8.500000 0.000000l0.000000 -8.109375l8.890625 0.000000q7.265625 0.000000 11.125000 -2.906250q3.859375 -2.906250 3.859375 -8.375000q0.000000 -5.609375 -3.984375 -8.609375q-3.968750 -3.015625 -11.390625 -3.015625q-4.062500 0.000000 -8.703125 0.890625q-4.640625 0.875000 -10.203125 2.718750l0.000000 -8.781250q5.625000 -1.562500 10.531250 -2.343750q4.906250 -0.781250 9.250000 -0.781250q11.234375 0.000000 17.765625 5.109375q6.546875 5.093750 6.546875 13.781250q0.000000 6.062500 -3.468750 10.234375q-3.468750 4.171875 -9.859375 5.781250"/> +</defs> +<g style="fill: #000000; opacity: 1.000000" transform="translate(320.189915,401.706250)scale(0.120000)"> +<use xlink:href="#c_54624f4845a86755fe6d2d7ebbf10290"/> +<use xlink:href="#c_01d93a582460e35a7945ca50d148ffeb" x="29.492188"/> +<use xlink:href="#c_fe791a90f5471e2ab20a5ed41a7fa451" x="90.771484"/> +<use xlink:href="#c_d41d8cd98f00b204e9800998ecf8427e" x="154.150391"/> +<use xlink:href="#c_ed3f3ed3ebfbd18bcb9c012009a68ad1" x="185.937500"/> +<use xlink:href="#c_3dcfa38a02242cb63ec6726c6e70be7a" x="249.560547"/> +<use xlink:href="#c_d41d8cd98f00b204e9800998ecf8427e" x="313.183594"/> +<use xlink:href="#c_ed3f3ed3ebfbd18bcb9c012009a68ad1" x="344.970703"/> +<use xlink:href="#c_7a2040fe3b94fcd41d0a72c84e93b115" x="408.593750"/> +<use xlink:href="#c_7a2040fe3b94fcd41d0a72c84e93b115" x="472.216797"/> +<use xlink:href="#c_cd96f817f3cab988d24a2b49a5577fe6" x="535.839844"/> +</g> +</g> +</g> +<g id="xtick5"> +<g id="line2d9"> +<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m30e32995789d870ad79a2e54c91cf9c6" x="437.236364" y="388.800000"/> +</g></g> +<g id="line2d10"> +<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m9281cae24120827b11d5ea8a7ad3e96b" x="437.236364" y="43.200000"/> +</g></g> +<g id="text5"> +<defs> +<path id="c_1260a2df50f305f3db244e29828f968e" d="M10.796875 -72.906250l38.718750 0.000000l0.000000 8.312500l-29.687500 0.000000l0.000000 17.859375q2.140625 -0.734375 4.281250 -1.093750q2.156250 -0.359375 4.312500 -0.359375q12.203125 0.000000 19.328125 6.687500q7.140625 6.687500 7.140625 18.109375q0.000000 11.765625 -7.328125 18.296875q-7.328125 6.515625 -20.656250 6.515625q-4.593750 0.000000 -9.359375 -0.781250q-4.750000 -0.781250 -9.828125 -2.343750l0.000000 -9.921875q4.390625 2.390625 9.078125 3.562500q4.687500 1.171875 9.906250 1.171875q8.453125 0.000000 13.375000 -4.437500q4.937500 -4.437500 4.937500 -12.062500q0.000000 -7.609375 -4.937500 -12.046875q-4.921875 -4.453125 -13.375000 -4.453125q-3.953125 0.000000 -7.890625 0.875000q-3.921875 0.875000 -8.015625 2.734375z"/> +</defs> +<g style="fill: #000000; opacity: 1.000000" transform="translate(401.353551,401.706250)scale(0.120000)"> +<use xlink:href="#c_54624f4845a86755fe6d2d7ebbf10290"/> +<use xlink:href="#c_01d93a582460e35a7945ca50d148ffeb" x="29.492188"/> +<use xlink:href="#c_fe791a90f5471e2ab20a5ed41a7fa451" x="90.771484"/> +<use xlink:href="#c_d41d8cd98f00b204e9800998ecf8427e" x="154.150391"/> +<use xlink:href="#c_ed3f3ed3ebfbd18bcb9c012009a68ad1" x="185.937500"/> +<use xlink:href="#c_1260a2df50f305f3db244e29828f968e" x="249.560547"/> +<use xlink:href="#c_d41d8cd98f00b204e9800998ecf8427e" x="313.183594"/> +<use xlink:href="#c_ed3f3ed3ebfbd18bcb9c012009a68ad1" x="344.970703"/> +<use xlink:href="#c_7a2040fe3b94fcd41d0a72c84e93b115" x="408.593750"/> +<use xlink:href="#c_7a2040fe3b94fcd41d0a72c84e93b115" x="472.216797"/> +<use xlink:href="#c_cd96f817f3cab988d24a2b49a5577fe6" x="535.839844"/> +</g> +</g> +</g> +<g id="xtick6"> +<g id="line2d11"> +<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m30e32995789d870ad79a2e54c91cf9c6" x="518.400000" y="388.800000"/> +</g></g> +<g id="line2d12"> +<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m9281cae24120827b11d5ea8a7ad3e96b" x="518.400000" y="43.200000"/> +</g></g> +<g id="text6"> +<g style="fill: #000000; opacity: 1.000000" transform="translate(482.517188,401.706250)scale(0.120000)"> +<use xlink:href="#c_54624f4845a86755fe6d2d7ebbf10290"/> +<use xlink:href="#c_01d93a582460e35a7945ca50d148ffeb" x="29.492188"/> +<use xlink:href="#c_fe791a90f5471e2ab20a5ed41a7fa451" x="90.771484"/> +<use xlink:href="#c_d41d8cd98f00b204e9800998ecf8427e" x="154.150391"/> +<use xlink:href="#c_ed3f3ed3ebfbd18bcb9c012009a68ad1" x="185.937500"/> +<use xlink:href="#c_956f18cfdaf972f35a6c2b4aaac2532b" x="249.560547"/> +<use xlink:href="#c_d41d8cd98f00b204e9800998ecf8427e" x="313.183594"/> +<use xlink:href="#c_ed3f3ed3ebfbd18bcb9c012009a68ad1" x="344.970703"/> +<use xlink:href="#c_7a2040fe3b94fcd41d0a72c84e93b115" x="408.593750"/> +<use xlink:href="#c_7a2040fe3b94fcd41d0a72c84e93b115" x="472.216797"/> +<use xlink:href="#c_cd96f817f3cab988d24a2b49a5577fe6" x="535.839844"/> +</g> +</g> +</g> +<g id="text7"> +<defs> +<path id="c_dbe439baa035de1a298d0549b22269d8" d="M9.812500 -72.906250l46.093750 0.000000l0.000000 8.312500l-36.234375 0.000000l0.000000 21.578125l34.718750 0.000000l0.000000 8.296875l-34.718750 0.000000l0.000000 26.421875l37.109375 0.000000l0.000000 8.296875l-46.968750 0.000000z"/> +<path id="c_9e4b30cbdf32072672ded72e9074c4c9" d="M-0.296875 -72.906250l61.671875 0.000000l0.000000 8.312500l-25.875000 0.000000l0.000000 64.593750l-9.906250 0.000000l0.000000 -64.593750l-25.890625 0.000000z"/> +</defs> +<g style="fill: #000000; opacity: 1.000000" transform="translate(288.317187,417.862500)scale(0.120000)"> +<use xlink:href="#c_dbe439baa035de1a298d0549b22269d8"/> +<use xlink:href="#c_9e4b30cbdf32072672ded72e9074c4c9" x="63.183594"/> +</g> +</g> +</g> +<g id="matplotlib.axis2"> +<g id="ytick1"> +<g id="line2d13"> +<defs><path id="m3400efa6b1638b3fea9e19e898273957" d="M0.000000 0.000000L4.000000 0.000000"/></defs> +<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m3400efa6b1638b3fea9e19e898273957" x="72.000000" y="388.800000"/> +</g></g> +<g id="line2d14"> +<defs><path id="m20b58b2501143cb5e0a5e8f1ef6f1643" d="M0.000000 0.000000L-4.000000 0.000000"/></defs> +<g ><use style="fill: none; stroke: #000000; stroke-width: 0.500000; stroke-linejoin: round; stroke-linecap: butt; opacity: 1.000000" xlink:href="#m20b58b2501143cb5e0a5e8f1ef6f1643" x="518.400000" y="388.800000"/> +</g></g> +<g id="text8"> +<defs> +<path id="c_ed3e21196fb739f392806f09ca0594ef" d="M10.687500 -12.406250l10.312500 0.000000l0.000000... [truncated message content] |